Libjson

Un analizador y impresora JSON
Descargar ahora

Libjson Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • LGPL v3
  • Precio:
  • FREE
  • Nombre del editor:
  • vincenthz

Libjson Etiquetas


Libjson Descripción

Un analizador y impresora JSON Libjson es una pequeña biblioteca C y una base de código pequeña que combina un analizador eficiente y una impresora configurable. Se distribuye bajo la licencia de LGPLV2, o en su opción, la licencia LGPLV3.Usando ITPARSINGPARSING es realmente fácil, primero debe inicializar un contexto con: INT RET; JSON_PARSER PARSER; RET = JSON_PARSER_INIT (PSERSER, NULL, MY_CALLBACK, MY_CALLBACK_DATA); if (ret) {fprintf (stderr ", sucedió algo incorrecto durante el inicio "); RETRENDE RET;} my_callback y my_callback_data son la función de devolución de llamada con el puntero de datos que el analizador va a llamar después de que cada evidencia de análisis de eventos sea que la estructura del analizador debe asignar algunos datos, por lo que cuando el contexto del analizador ya no se usa. debe ser libre: json_parser_free (analizador); Ahora esta es la parte más importante, la alimentación real de los datos al analizador. La función principal a usar es JSON_PARSER_STRING; Se necesita un contexto de analizador, una cadena y una longitud, y opcionalmente. Tome un puntero INT para poder devolver el número de bytes procesados, que solo es útil en caso de error en el flujo. El siguiente ejemplo muestra cómo se hace al leer un JSON de una cadena en la memoria: char my_json_string [] = "{ "Clave": 123} "; ret = json_parser_string (analizador, my_json_string, strlen (my_json_string), null); if (ret) {/ * error ocurrido: imprime un mensaje o algo * / ruptura;} la última parte es la devolución de llamada Contexto, que se llama como cada evento de análisis. El siguiente es el Parámetros de la función de devolución de llamada: INT MY_CALLBACK (VOID * UserData, INT TYPE, CONS CHAR * DATA, UINT32_T Longitud) La devolución de llamada se llama con el primer usuario. Esto es lo que se ha registrado en el analizador del analizador, como my_callback_data. Es útil pasar cualquier dato (como puntero para ellos) a la devolución de llamada, como un contexto, un asa, etc., entonces el evento de análisis está representado por su tipo, y opcionalmente es un duración y longitud válidos. Aquí hay una función de devolución de llamada completa que solo imprima información: int my_callback (void * userdata, int Type, const char * data, uint32_t longitud) {interruptor (tipo) {caja json_object_begin: caja json_array_begin: printf ("estructura ingresada "); descanso; Case JSON_OBJECT_END: ​​CASE JSON_ARRAY_END: ​​Printf (" Estructura final "); Break; Case JSON_KEY: CASE JSON_STRING: CASO JSON_INT: CASO JSON_FLOAT: PRUPTF ("% * s ", longitud, datos); descanso; caso JSON_NULL: CASE JSON_TRUE: CASE JSON_FALSE: PRUPTF (" Constante ");}} Imprimiendo la impresión es aún más fácil que el análisis. Primero, necesita un contexto de impresión y una función de escritura de devolución de llamada. La función de devolución de llamada de escritura está a cargo de poner los datos marcariados (la cadena) donde desee. Por ejemplo desea Imprima en un archivo, a un zócalo, o a un búfer de memoria que crezca. No se complete ... Aquí hay algunas características clave de "Libjson": · Parser interrumpible: obtenga los datos de JSON al analizador de cualquier manera que desee; Al apagar Char por char, o trozos de cuerdas, la lectura de entrada se deja completamente a la persona que llama. · Ningún modelo de objeto integrado: fácil integración con cualquier modelo por medio de una devolución de llamada simple. · Base de código pequeño: el analizador y la factorización eficiente de código hecha a mano hacen que los pequeños códigos. · Soporte completo de JSON: probado a través de un testsuite pequeño y preciso. · No hay conversión nativa: devolución de llamada solo cadena de datos y deje la representación real de los datos a la persona que llama · Soporta poniendo límites al nivel de anidamiento. · Soporta poniendo límites en los datos (STRING / INT / FLOAT) tamaño · Opcionalmente apoya a Yaml / Python y C comentarios. · Apoya las funciones de asignación específicas de proyectos para integrarse completamente con proyectos. · Juego de utilidad provisto de la biblioteca para verificar, o reformatear el flujo JSON. También es útil como ejemplo sobre cómo usar la biblioteca. ¿Qué hay de nuevo en este lanzamiento: · Algunas correcciones en las reglas de instalación, agregue un archivo PC para PKGCONFIG


Libjson Software relacionado

PathCreator

Herramienta para crear una ruta de reproducción de sonido 3D dada un oyente, altavoces, ruta de audio y pista de audio. ...

165

Descargar