C++

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 en revue 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 permettant de stocker et de transférer des données structurées de manière organisée. Les données JSON sont représentées sous forme de listes ordonnées et de paires clé-valeur. JSON signifie JavaScopiste Objet Notation. Comme son nom complet l'indique, 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 qu'en 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 clé-valeur.
  2. Les données JSON sont séparées par des virgules.
  3. Une accolade est utilisée pour représenter l'objet JSON.
  4. Un crochet est utilisé pour représenter un tableau JSON.

Qu'est-ce que les données JSON?

Les données JSON sont représentées sous forme de paires clé-valeur. 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 deux-points.

Extension de fichier JSON

Les données JSON sont normalement stockées dans le fichier avec l'extension ".json". Par exemple, pour stocker les données de l'employé, vous pouvez simplement nommer le fichier « 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 entre les accolades. Voici un exemple d'objet JSON :


« Nom » : « Drake »,
« ID d'employé » : « 23547a »,
« Téléphone » : « 23547 »,
« Département » : « Finances »

Un objet JSON peut contenir plusieurs données JSON. Chaque donnée JSON est séparée par une virgule. Les données JSON sont représentées sous forme de paires clé-valeur. La clé, je.e., « Nom » et la valeur, je.e., "Drake" sont séparés par un deux-points. Dans l'exemple ci-dessus, il y a quatre paires clé-valeur. 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.

Tableau JSON

Un tableau JSON peut contenir plusieurs objets JSON séparés par des virgules. Le tableau JSON est entouré d'un crochet. Regardons un exemple de tableau JSON :

"Étudiants":[
"firstName":"Sean", "lastName":"Marron",
"firstName":"Drake", "lastName":"Williams",
"firstName":"Tom", "lastName":"Miller",
« prénom » : « Peter », « Nom » : « Johnson »
]

Ceci est un exemple de tableau JSON. Ici, « Etudiants » est entouré d'un crochet, je.e., tableau, et il contient quatre objets JSON. Chacun de ces objets est représenté sous forme de paires clé-valeur et est séparé par une virgule.

Un exemple de fichier JSON

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


« prénom » : « Sean »,
« nom de famille » : « Marron »,
« ID étudiant » : 21453,
« Département » : « Sc informatique.",
« Sujets » :[« Math », « Phy », « Chem »]

Bibliothèques d'analyse 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.fr/Tencent/rapidjson/

Vous pouvez 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. Regardons maintenant quelques exemples pour analyser les données JSON en C++ :

Pour l'Exemple-1 et l'Exemple-2, nous allons utiliser la bibliothèque "nlohmann". Dans le cas de l'exemple-3, nous utiliserons la bibliothèque « RapidJSON ».

Exemple-1 : Analyser 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"
en utilisant json = nlohmann::json;
int main()

// jdEmployés
json jdEmployés =

"prénom","Sean",
"nom","Marron",
"Étudiant",21453,
"Département","Science informatique."
 ;
// Accéder aux valeurs
std::string fName = jdEmployees.value("firstName", "oops");
std::string lName = jdEmployees.value("nom", "oups");
int sID = jdEmployés.value("Étudiant", 0);
std::string dept = jdEmployees.value("Département", "oups");
// Imprimer 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;
renvoie 0 ;

Exemple-2 : Analyser 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
en utilisant json = nlohmann::json;
int main()

// Voici un texte JSON
texte char[] = R"(

"Livre":
"Largeur": 450,
"Hauteur": 30,
"Titre": "Bonjour le monde",
"isBiography": false,
"NumDeCopies": 4,
"ID de bibliothèque" : [2319, 1406, 3854, 987]


)" ;
// Analysons et sérialisons JSON
json j_complete = json::parse(text);
std::cout << std::setw(4) << j_complete << std::endl;

Exemple-3 : Analyser JSON en C++

Maintenant, nous allons montrer comment analyser une chaîne JSON à l'aide de la bibliothèque RapidJSON. RapidJSON a été inspiré à l'origine 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"
en utilisant l'espace de noms rapidjson;
int main()

const char* json = ""firstName":"Sean","lastName":"Brown","empId":21453,
"department": "Sc informatique."" ;
// Analyse la chaîne JSON dans DOM
Documenter mondoc ;
mondoc.Parse(json);
// DOM en chaîne
Tampon StringBuffer ;
Écrivain écrivain(tampon);
mondoc.Accepter (écrivain);
// Imprimer la sortie
std::cout << buffer.GetString() << std::endl;
renvoie 0 ;

Conclusion

Dans cet article, nous avons brièvement discuté des données JSON, de l'objet, du tableau et de la syntaxe. Comme nous le savons, il n'existe pas de solution native pour l'analyse des 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 de données JSON en C++. Par rapport à la bibliothèque "nlohmann", le RapidJSON est petit, rapide et convivial en mémoire.

Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...
Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...
Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...