Sobre o projeto

nlohmann/json (JSON for Modern C++) é uma biblioteca C++ header-only que fornece suporte a JSON para C++11 e versões posteriores. Toda a implementação está contida em um único arquivo (single_include/nlohmann/json.hpp), não requer dependências externas nem configuração de build complexa, e é distribuída por diversos gerenciadores de pacotes. Ela foi projetada para fazer o JSON parecer um tipo de dado de primeira classe em C++, usando sobrecarga de operadores e listas de inicialização para construção intuitiva de objetos e arrays. A biblioteca inclui análise e serialização de/para strings, streams e intervalos de iteradores; acesso a elementos semelhante à STL; e conversões entre valores JSON e tipos padrão de C++, incluindo tipos arbitrários definidos pelo usuário por meio de especialização. Ela implementa JSON Pointer, JSON Patch e JSON Merge Patch para consultar e modificar documentos, e suporta vários formatos de serialização binária: BSON, CBOR, MessagePack, UBJSON e BJData. Uma interface de análise no estilo SAX também está disponível para uso orientado a eventos. De acordo com o README, o projeto enfatiza testes minuciosos: 100% de cobertura de testes unitários, verificações de memória com Valgrind e sanitizadores do Clang, e testes de fuzzing contínuos por meio do Google OSS-Fuzz. A documentação, o FAQ, a referência da API e os exemplos estão hospedados em json.nlohmann.me. As opções de integração incluem CMake, gerenciadores de pacotes e pkg-config. A biblioteca suporta apenas UTF-8; outras codificações precisam de configuração de error-handler durante o dumping.