C ++

Cómo analizar JSON en C ++

Cómo analizar JSON en C ++
La intención de este tutorial es comprender los datos JSON y cómo analizar los datos JSON en C++. Analizaremos los datos JSON, Object, Array, la sintaxis JSON, y luego repasaremos varios ejemplos de trabajo para comprender el mecanismo de análisis de datos JSON en C++.

Que es JSON?

JSON es una representación ligera basada en texto para almacenar y transferir datos estructurados de forma organizada. Los datos JSON se representan en forma de listas ordenadas y pares clave-valor. JSON significa JavaScript Oobjeto norteotación. Como indica el nombre completo, se deriva de JavaScript. Sin embargo, los datos JSON son compatibles con la mayoría de los lenguajes de programación populares.

A menudo se utiliza para transferir los datos del servidor a una página web. Es mucho más fácil y limpio representar los datos estructurados en JSON que en XML.

Regla de sintaxis JSON

Aquí están las reglas de sintaxis JSON:

  1. Los datos JSON siempre deben estar en forma de pares clave-valor.
  2. Los datos JSON están separados por comas.
  3. Se utiliza una llave para representar el objeto JSON.
  4. Se utiliza un corchete para representar una matriz JSON.

¿Qué son los datos JSON??

Los datos JSON se representan en forma de pares clave-valor. Esto es similar a un diccionario o hash en otros lenguajes de programación.

"Nombre": "Drake"

Este es un ejemplo de datos JSON simples. La clave aquí es "Nombre" y "Drake" es el valor correspondiente. La clave, yo.mi., "Nombre" y el valor, i.mi., "Drake" están separados por dos puntos.

Extensión de archivo JSON

Los datos JSON normalmente se almacenan en el archivo con la extensión ".json ". Por ejemplo, para almacenar los datos del empleado, simplemente puede nombrar el archivo como 'empleado.json '. Este sería un archivo de texto simple. Luego puede abrir este archivo JSON en cualquiera de sus editores de texto favoritos.

Objeto JSON

El objeto JSON no es más que los datos JSON incluidos entre llaves. Aquí hay un objeto JSON de muestra:


"Nombre": "Drake",
"ID de empleado": "23547a",
"Teléfono": "23547",
"Departamento": "Finanzas"

Un objeto JSON puede contener varios datos JSON. Cada dato JSON está separado por una coma. Los datos JSON se representan como pares clave-valor. La clave, yo.mi., "Nombre" y el valor, i.mi., "Drake" están separados por dos puntos. En el ejemplo anterior, hay cuatro pares clave-valor. La primera clave es "Nombre"; "Drake" es el valor correspondiente. Del mismo modo, "EmployeeID", "Phone" y "Department" son las otras tres teclas.

Matriz JSON

Una matriz JSON puede contener varios objetos JSON separados por comas. La matriz JSON está dentro de un corchete. Veamos un ejemplo de una matriz JSON:

"Estudiantes":[
"firstName": "Sean", "lastName": "Brown",
"firstName": "Drake", "lastName": "Williams",
"firstName": "Tom", "lastName": "Miller",
"FirstName": "Peter", "lastName": "Johnson"
]

Este es un ejemplo de una matriz JSON. Aquí, "Estudiantes" se encierra con un corchete, i.mi., matriz, y contiene cuatro objetos JSON. Cada uno de estos objetos se representa en forma de pares clave-valor y está separado por una coma.

Un archivo JSON de muestra

Ahora, dado que entendimos los datos JSON, los objetos JSON, la matriz JSON, veamos un ejemplo de un archivo JSON:


"FirstName": "Sean",
"LastName": "Marrón",
"Identificación de estudiante": 21453,
"Departamento": "Computer Sc.",
"Materias": ["Matemáticas", "Phy", "Chem"]

Análisis de bibliotecas en C ++:

No existe una solución nativa para analizar datos JSON en C++. Sin embargo, hay varias bibliotecas para analizar datos JSON en C++. En este artículo, analizaremos las dos bibliotecas más populares para analizar datos JSON en C++. Aquí están los enlaces de GitHub para analizar datos JSON:

  1. https: // github.com / nlohmann / json
  2. https: // github.com / Tencent / rapidjson /

Es posible que desee descargar estas bibliotecas para poder ejecutar los ejemplos que se muestran a continuación.

Ejemplos de

Ahora, tenemos un conocimiento básico de los datos JSON, los objetos, las matrices y las bibliotecas de análisis disponibles. Veamos ahora un par de ejemplos para analizar datos JSON en C ++:

Para el Ejemplo-1 y el Ejemplo-2, usaremos la biblioteca "nlohmann". En el caso del Ejemplo-3, usaremos la biblioteca "RapidJSON".

Ejemplo 1: analizar JSON en C++

En este programa de ejemplo, demostraremos cómo acceder a valores de datos JSON en C++.

#incluir
#include "json.hpp "
usando json = nlohmann :: json;
int main ()

// jdEmployees
json jdEmployees =

"firstName", "Sean",
"lastName", "Brown",
"StudentID", 21453,
"Departamento", "Informática Sc."
;
// Accede a los valores
std :: string fName = jdEmployees.valor ("nombre", "oops");
std :: string lName = jdEmployees.valor ("apellido", "oops");
int sID = jdEmployees.valor ("StudentID", 0);
std :: string dept = jdEmployees.valor ("Departamento", "oops");
// Imprime los valores
std :: cout << "First Name: " << fName << std::endl;
std :: cout << "Last Name: " << lName << std::endl;
std :: cout << "Student ID: " << sID << std::endl;
std :: cout << "Department: " << dept << std::endl;
return 0;

Ejemplo 2: analizar y serializar JSON en C++

En este programa de ejemplo, veremos cómo analizar y serializar JSON en C++. Estamos usando "json :: parse ()" para analizar los datos JSON.

#incluir
#include "json.hpp "
#incluir
usando json = nlohmann :: json;
int main ()

// Aquí hay un texto JSON
char text [] = R "(

"Libro":
"Ancho": 450,
"Altura": 30,
"Título": "Hola mundo",
"isBiography": falso,
"NumOfCopies": 4,
"LibraryIDs": [2319, 1406, 3854, 987]


) ";
// Analicemos y serialicemos JSON
json j_complete = json :: parse (texto);
std :: cout << std::setw(4) << j_complete << std::endl;

Ejemplo-3: Analizar JSON en C++

Ahora, demostraremos cómo analizar una cadena JSON usando la biblioteca RapidJSON. RapidJSON se inspiró originalmente en RapidXML. En este programa de ejemplo, estamos analizando una cadena JSON en DOM. Hemos declarado "mydoc" de tipo "Documento" y luego usando el "mydoc.parse () ”para analizar la cadena JSON.

#incluir
#include "rapidjson / writer.h "
#include "rapidjson / document.h "
#include "rapidjson / stringbuffer.h "
usando el espacio de nombres rapidjson;
int main ()

const char * json = "" firstName ":" Sean "," lastName ":" Brown "," empId ": 21453,
"departamento": "Computer Sc."";
// Analizar la cadena JSON en DOM
Documento mydoc;
mydoc.Parse (json);
// DOM para encadenar
Búfer StringBuffer;
Escritor escritor (búfer);
mydoc.Aceptar (escritor);
// Imprime la salida
std :: cout << buffer.GetString() << std::endl;
return 0;

Conclusión

En este artículo, hemos analizado brevemente los datos, el objeto, la matriz y la sintaxis de JSON. Como sabemos, no existe una solución nativa para el análisis de datos JSON en C ++; hemos utilizado dos bibliotecas diferentes para analizar datos JSON en C++. Analizamos tres ejemplos diferentes para demostrar el mecanismo de análisis de datos JSON en C++. En comparación con la biblioteca "nlohmann", RapidJSON es pequeño, rápido y fácil de usar.

Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...
Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...