Introduction à nlohmann/json : qu'est-ce que c'est et pourquoi l'utiliser
\n\nLa bibliothèque nlohmann/json (également connue sous le nom de JSON for Modern C++) est l'une des bibliothèques les plus populaires et les plus pratiques pour travailler avec JSON en langage C++. Elle a été développée par Niels Lohmann et est distribuée sous licence MIT. L'objectif principal de la bibliothèque est de fournir une interface intuitive, moderne et sécurisée pour l'analyse, la création, la modification et la sérialisation de données JSON.
\n\nPourquoi en a-t-on besoin ? Dans le développement moderne, JSON (JavaScript Object Notation) est le standard de facto pour l'échange de données entre services, le stockage de configurations, le travail avec les API et les applications web. La bibliothèque standard du C++ ne prend pas en charge JSON de manière native, ce qui oblige les développeurs soit à écrire leurs propres analyseurs, soit à utiliser des solutions tierces. nlohmann/json résout ce problème en offrant :
\n\n- \n
- Une syntaxe simple — le travail avec JSON ressemble au travail avec les conteneurs intégrés de la STL (std::map, std::vector). \n
- La sécurité des types — conversion automatique entre les types C++ et JSON. \n
- Des performances élevées — la bibliothèque est optimisée pour la vitesse et la mémoire. \n
- La multiplateforme — fonctionne sur Windows, Linux, macOS, ainsi que sur les systèmes embarqués. \n
- La prise en charge complète de la norme JSON — y compris les objets imbriqués, les tableaux, null, les valeurs booléennes, les nombres et les chaînes de caractères. \n
La bibliothèque est activement utilisée dans des projets industriels, tels que les moteurs de jeux, les serveurs web, les outils d'analyse de données et les appareils IoT.
\n\nInstallation de nlohmann/json
\n\nContrairement à Python (où l'on utilise pip), en C++, l'installation des bibliothèques peut être effectuée de plusieurs manières. Examinons les plus populaires.
\n\nMéthode 1 : Header-only (recommandée pour les débutants)
\nLa bibliothèque nlohmann/json est header-only — cela signifie que pour l'utiliser, il suffit de télécharger un seul fichier d'en-tête json.hpp et de l'inclure dans le projet. Aucune compilation, liaison ou installation de dépendances n'est nécessaire.
- \n
- Téléchargez le fichier
json.hppdepuis le dépôt officiel (dernière version : v3.11.3). \n - Placez-le dans le dossier de votre projet, par exemple,
include/json.hpp. \n - Dans le code source, incluez :
#include "json.hpp". \n
Méthode 2 : Installation via les gestionnaires de paquets
\nSi vous utilisez des systèmes de construction modernes, vous pouvez installer la bibliothèque via un gestionnaire de paquets :
\n- \n
- vcpkg (Windows, Linux, macOS) :
vcpkg install nlohmann-json\n - Conan :
conan install nlohmann_json/3.11.3@\n - Homebrew (macOS) :
brew install nlohmann-json\n - APT (Ubuntu/Debian) :
sudo apt install nlohmann-json3-dev\n
Méthode 3 : CMake FetchContent
\nPour les projets CMake, vous pouvez télécharger automatiquement la bibliothèque lors de la construction :
\ninclude(FetchContent)\nFetchContent_Declare(\n json\n GIT_REPOSITORY https://github.com/nlohmann/json.git\n GIT_TAG v3.11.3\n)\nFetchContent_MakeAvailable(json)\ntarget_link_libraries(your_target PRIVATE nlohmann_json::nlohmann_json)\n\nDémarrage rapide : premier exemple
\n\nÉcrivons un programme simple qui crée un objet JSON, l'affiche à l'écran, puis analyse une chaîne JSON en retour.
\n\n#include <iostream>\n#include "json.hpp"\n\nusing json = nlohmann::json;\n\nint main() {\n // 1. Création d'un objet JSON\n json person = {\n {"name", "Alice"},\n {"age", 30},\n {"is_student", false},\n {"skills", {"C++", "Python", "JSON"}},\n