À propos du projet

nlohmann/json (JSON for Modern C++) est une bibliothèque C++ à en-tête unique qui fournit la prise en charge de JSON pour C++11 et versions ultérieures. L'implémentation complète est contenue dans un seul fichier (single_include/nlohmann/json.hpp), ne nécessite aucune dépendance externe ni configuration de build complexe, et est distribuée via de nombreux gestionnaires de paquets. Elle est conçue pour que JSON se comporte comme un type de données de première classe en C++, en utilisant la surcharge d'opérateurs et les listes d'initialisation pour une construction intuitive d'objets et de tableaux. La bibliothèque inclut l'analyse et la sérialisation depuis/vers des chaînes, des flux et des plages d'itérateurs ; un accès aux éléments de type STL ; et des conversions entre valeurs JSON et types C++ standard, y compris des types définis par l'utilisateur arbitraires via spécialisation. Elle implémente JSON Pointer, JSON Patch et JSON Merge Patch pour interroger et modifier des documents, et prend en charge plusieurs formats de sérialisation binaires : BSON, CBOR, MessagePack, UBJSON et BJData. Une interface d'analyse de style SAX est également disponible pour un usage événementiel. Selon le README, le projet met l'accent sur des tests approfondis : couverture de tests unitaires à 100 %, vérifications mémoire avec Valgrind et les sanitizers de Clang, et fuzzing continu via Google OSS-Fuzz. La documentation, la FAQ, la référence API et les exemples sont hébergés sur json.nlohmann.me. Les options d'intégration incluent CMake, les gestionnaires de paquets et pkg-config. La bibliothèque prend en charge uniquement UTF-8 ; les autres encodages nécessitent une configuration du gestionnaire d'erreurs lors du dumping.