Introduction : Pourquoi JSON en C++ ?
\nJSON (JavaScript Object Notation) est un format léger d'échange de données, largement utilisé dans les applications web, les fichiers de configuration et les API. Bien que JSON soit initialement apparu en JavaScript, il est aujourd'hui devenu le standard de facto pour la transmission de données structurées entre un serveur et un client dans tout langage de programmation, y compris le C++.
\nDans cet article, nous allons voir comment travailler avec JSON en C++ : parser (lire) et sérialiser (créer) des données JSON. Ce contenu est destiné aux développeurs débutants qui connaissent déjà les bases du C++ (variables, fonctions, classes), mais n'ont pas encore travaillé avec JSON.
\nPour travailler avec JSON en C++, nous utiliserons la bibliothèque populaire nlohmann/json (également connue sous le nom de JSON for Modern C++). Elle est simple à installer, intuitive et parfaitement adaptée à l'apprentissage.
\n\nInstallation de la bibliothèque nlohmann/json
\nAvant d'écrire du code, il est nécessaire d'inclure la bibliothèque. La méthode la plus simple consiste à utiliser la version header-only (un seul fichier d'en-tête suffit).
\n\nMéthode 1 : Télécharger le fichier json.hpp
\n- \n
- Rendez-vous sur le dépôt GitHub nlohmann/json. \n
- Téléchargez le fichier
json.hppdepuis la dernière version. \n - Placez-le dans le dossier de votre projet. \n
- Incluez-le dans le code :
#include "json.hpp"\n
Méthode 2 : Utiliser un gestionnaire de paquets (vcpkg / Conan)
\nSi vous utilisez CMake, le plus simple est d'installer la bibliothèque via vcpkg :
\nvcpkg install nlohmann-json\nOu via Conan :
\nconan install nlohmann_json/3.11.2@\n\nAprès l'installation, incluez la bibliothèque dans le code :
\n#include <nlohmann/json.hpp>\nusing json = nlohmann::json;\n\nVous êtes maintenant prêt à travailler !
\n\nParsing JSON en C++ : lecture des données
\nLe parsing est le processus de conversion d'une chaîne JSON en un objet avec lequel on peut travailler dans le code. La bibliothèque nlohmann/json rend cela extrêmement simple.
\n\nExemple 1 : Parsing d'une chaîne JSON
\nSupposons que nous ayons une chaîne JSON contenant des informations sur un utilisateur :
\n{\n "name": "Alexeï",\n "age": 30,\n "is_student": false,\n "hobbies": ["lecture", "programmation", "vélo"]\n}\n\nLe parsing s'effectue en une seule ligne :
\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main() {\n // Chaîne JSON source\n std::string json_str = R"(\n {\n "name": "Alexeï",\n "age": 30,\n "is_student": false,\n "hobbies": ["lecture", "programmation", "vélo"]\n }\n )";\n\n // Parsing\n json data = json::parse(json_str);\n\n // Accès aux données\n std::string name = data["name"];\n int age = data["age"];\n bool is_student = data["is_student"];\n std::vector<std::string> hobbies = data["hobbies"];\n\n // Affichage\n std::cout << "Nom : " << name << std::endl;\n std::cout << "Âge : " << age << std::endl;\n std::cout << "Étudiant ? " << (is_student ? "oui" : "non") << std::endl;\n std::cout << "Loisirs : ";\n for (const auto& hobby : hobbies) {\n std::cout << hobby << " ";\n }\n std::cout << std::endl;\n\n return 0;\n}\n\nRésultat de l'exécution :
\nNom : Alexeï\nÂge : 30\nÉtudiant ? non\nLoisirs : lecture programmation vélo\n\nExemple 2 : Traitement des objets imbriqués
\nJSON contient souvent des structures imbriquées. Prenons l'exemple d'une adresse :
\n{\n "user": {\n "name": "Maria",\n "address": {\n "city": "Moscou",\n "street": "Tverskaïa"\n }\n }\n}\n\nAccès aux données imbriquées :
\nBlogs
Book Recommendations
Lire aussi
Startups sur Kotlin : comment le langage de JetBrains transforme les affaires
Mise en cache des données en Kotlin : du simple au professionnel
Configuration en Go : comment arrêter de souffrir et commencer à gérer les paramètres de manière flexible
Clean Code en Kotlin : principes et exemples pratiques
Contribution open source PHP : guide pour débuter sans abandonner