Comment analyser JSON en C ++

Comment analyser JSON en C ++
L'intention de ce tutoriel est de comprendre les données JSON et comment analyser les données JSON en C++. Nous discuterons des données JSON, de l'objet, du tableau, de la syntaxe JSON, puis passerons par plusieurs exemples de travail pour comprendre le mécanisme d'analyse des données JSON en C++.

Qu'est-ce que JSON?

JSON est une représentation textuelle légère pour stocker et transférer des données structurées de manière organisée. Les données JSON sont représentées sous la forme de listes ordonnées et de paires de valeurs clés. JSON représente JAvaScrise Ofaire un coup de pied Notation. Comme l'indique le nom complet, il est dérivé de JavaScript. Cependant, les données JSON sont prises en charge dans la plupart des langages de programmation populaires.

Il est souvent utilisé pour transférer les données du serveur vers une page Web. Il est beaucoup plus facile et plus propre de représenter les données structurées en JSON que XML.

Règle de syntaxe JSON

Voici les règles de syntaxe JSON:

  1. Les données JSON doivent toujours être sous la forme de paires de valeurs clés.
  2. Les données JSON sont séparées par des virgules.
  3. Une attelle bouclée est utilisée pour représenter l'objet JSON.
  4. Un support carré est utilisé pour représenter un tableau JSON.

Quelles sont les données JSON?

Les données JSON sont représentées sous la forme de paires de valeurs clés. Ceci est similaire à un dictionnaire ou un hachage dans d'autres langages de programmation.

«Nom»: «Drake»

Ceci est un exemple de données JSON simples. La clé ici est «Nom» et «Drake» est la valeur correspondante. La clé, je.e., «Nom» et la valeur, je.e., «Drake» sont séparés par un côlon.

Extension de fichier JSON

Les données JSON sont normalement stockées dans le fichier avec l'extension de «.JSON ". Par exemple, pour stocker les données de l'employé, vous pouvez simplement nommer le fichier comme «employé.JSON '. Ce serait un simple fichier texte. Vous pouvez ensuite ouvrir ce fichier JSON dans l'un de vos éditeurs de texte préférés.

Objet JSON

L'objet JSON n'est rien d'autre que les données JSON enfermées dans les accolades bouclées. Voici un exemple d'objet JSON:


«Nom»: «Drake»,
«ID des employés»: «23547a»,
«Téléphone»: «23547»,
«Département»: «Finance»

Un objet JSON peut contenir plusieurs données JSON. Chaque données JSON est séparée par une virgule. Les données JSON sont représentées comme des paires de valeurs clés. La clé, je.e., «Nom» et la valeur, je.e., «Drake» sont séparés par un côlon. Dans l'exemple ci-dessus, il y a quatre paires de valeurs clés. La première clé est «nom»; «Drake» est la valeur correspondante pour cela. De même, «Employeeid», «téléphone» et «département» sont les trois autres clés.

Array JSON

Un tableau JSON peut contenir plusieurs objets JSON séparés par des virgules. Le tableau JSON est enfermé dans une tranche carrée. Regardons un exemple de tableau JSON:

"Étudiants":[
"FirstName": "Sean", "LastName": "Brown",
"FirstName": "Drake", "LastName": "Williams",
"FirstName": "Tom", "LastName": "Miller",
"FirstName": "Peter", "LastName": "Johnson"
]]

Ceci est un exemple d'un tableau JSON. Ici, les «étudiants» sont enfermés avec un support carré, je.e., tableau, et il contient quatre objets JSON. Chacun de ces objets est représenté sous la forme de paires de valeurs clés et est séparé par une virgule.

Un exemple de fichier JSON

Maintenant, puisque nous avons compris les données JSON, les objets JSON, JSON Array, regardons un exemple de fichier JSON:


«Firstname»: «Sean»,
«LastName»: «Brown»,
«Étudiant ID»: 21453,
«Département»: «Computer SC.",
«Sujets»: [«Math», «Phy», «Chem»]

Analyse des bibliothèques en C ++:

Il n'y a pas de solution native pour analyser les données JSON en C++. Cependant, il existe plusieurs bibliothèques pour analyser les données JSON en C++. Dans cet article, nous allons examiner les deux bibliothèques les plus populaires pour analyser les données JSON en C++. Voici les liens GitHub pour l'analyse des données JSON:

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

Vous voudrez peut-être télécharger ces bibliothèques pour pouvoir exécuter les exemples ci-dessous.

Exemples

Maintenant, nous avons une compréhension de base des données JSON, des objets, des tableaux et des bibliothèques d'analyse disponibles. Voyons maintenant quelques exemples pour analyser les données JSON en C ++:

  • Exemple-1: analyse JSON en C++
  • Exemple-2: analyse et sérialiser JSON en C++
  • Exemple-3: analyse JSON en C++

Par exemple-1 et exemple-2, nous allons utiliser la bibliothèque «Nlohmann». Dans le cas de l'exemple-3, nous utiliserons la bibliothèque «RapidJson».

Exemple-1: analyse JSON en C++

Dans cet exemple de programme, nous montrerons comment accéder aux valeurs des données JSON en C++.

#inclure
#include "JSON.HPP "
Utilisation de JSON = Nlohmann :: JSON;
int main()

// JDemployés
JSON JDEmployees =
"FirstName", "Sean",
"LastName", "Brown",
"StudentId", 21453,
"Department", "Computer SC.";
// accéder aux valeurs
std :: string fname = jDemployeses.Value ("FirstName", "Oops");
std :: string lname = jDemployeses.Value ("LastName", "Oops");
int sid = jDemployes.valeur ("StudentId", 0);
std :: string dept = jDemployeses.valeur ("département", "oups");
// imprime les valeurs
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;
retour 0;

Exemple-2: analyse et sérialiser JSON en C++

Dans cet exemple de programme, nous allons voir comment analyser et sérialiser JSON en C++. Nous utilisons «json :: parse ()» pour analyser les données JSON.

#inclure
#include "JSON.HPP "
#inclure
Utilisation de JSON = Nlohmann :: JSON;
int main()

// voici un texte JSON
Texte char [] = r "(

"Livre":
"Largeur": 450,
"Hauteur": 30,
"Titre": "Hello World",
"Isbiographie": faux,
"Numofcopies": 4,
"Libraryids": [2319, 1406, 3854, 987]


) ";
// Parse et sérialisons JSON
JSON J_COMPLETE = JSON :: Parse (texte);
std :: cout << std::setw(4) << j_complete << std::endl;

Exemple-3: analyse JSON en C++

Maintenant, nous allons montrer comment analyser la chaîne JSON en utilisant la bibliothèque RapidJson. Rapidjson a été initialement inspiré par le RapidXML. Dans cet exemple de programme, nous analysons une chaîne JSON dans DOM. Nous avons déclaré «MyDoc» de type «document», puis en utilisant le «MyDoc.PARSE () ”Méthode pour analyser la chaîne JSON.

#inclure
#include "RapidJson / écrivain.H "
#include "RapidJson / Document.H "
#include "RapidJson / StringBuffer.H "
Utilisation de l'espace de noms RapidJson;
int main()

const char * JSON = "" FirstName ":" Sean "," LastName ":" Brown "," Empid ": 21453,
"Département": "Computer SC."";
// analyser la chaîne JSON dans DOM
Documenter MyDoc;
mydoc.Parse (JSON);
// Dom à String
Tampon StringBuffer;
Écrivain écrivain (tampon);
mydoc.Accepter (écrivain);
// imprime la sortie
std :: cout << buffer.GetString() << std::endl;
retour 0;

Conclusion

Dans cet article, nous avons brièvement discuté des données JSON, des objets, du tableau et de la syntaxe. Comme nous le savons, il n'y a pas de solution native pour l'analyse de données JSON en C ++; Nous avons utilisé deux bibliothèques différentes pour analyser les données JSON en C++. Nous avons examiné trois exemples différents pour démontrer le mécanisme d'analyse des données JSON en C++. Par rapport à la bibliothèque «Nlohmann», le Rapidjson est petit, rapide et convivial.