Uma biblioteca de formatação para C++ que oferece uma alternativa rápida e segura quanto aos tipos a C stdio e iostreams, implementando std::format do C++20.
nlohmann/json
Biblioteca C++11 header-only que permite analisar, criar, manipular e serializar JSON em C++ com uma sintaxe semelhante à da STL.
- Estrelas
- 50,790
- Forks
- 7,511
- Issues abertas
- 19
- Último commit
- há 4 horas
O que é?
JSON for Modern C++ é uma biblioteca C++ para trabalhar com valores JSON como se fossem tipos de dados nativos. Um valor JSON é representado por uma única classe, basic_json (com o alias nlohmann::json), que pode ser criada a partir de literais, contêineres da STL ou tipos definidos pelo usuário, e acessada com operadores e métodos familiares de contêineres.
A biblioteca inteira é distribuída em um único arquivo de cabeçalho, então pode ser adicionada a um projeto sem uma etapa de build separada nem dependências. Ela oferece suporte a JSON Pointer (RFC 6901), JSON Patch (RFC 6902) e JSON Merge Patch (RFC 7396), incluindo a geração de diffs, e pode converter dados de e para vários formatos binários, como BSON, CBOR, MessagePack, UBJSON, BJData e BON8.
Tipos definidos pelo usuário podem ser mapeados para JSON por meio das funções to_json e from_json ou de macros auxiliares que as geram. O projeto oferece documentação e uma referência da API, além de listar a integração com CMake e gerenciadores de pacotes comuns.
Recursos principais
- 01Integração com um único header, sem dependências, escrita em C++11.
- 02Sintaxe intuitiva, semelhante à da STL, para acessar e atribuir valores JSON.
- 03Parsing de strings, streams e intervalos de iteradores, além de serialização com indentação.
- 04Suporte a JSON Pointer, JSON Patch e JSON Merge Patch, incluindo a geração de diffs.
- 05Conversão de e para formatos binários como CBOR, MessagePack, BSON e UBJSON.
- 06Macros e funções de conversão para mapear tipos C++ personalizados para JSON.
Casos de uso
- Ler arquivos de configuração ou payloads de API em uma aplicação C++.
- Montar respostas ou mensagens JSON a partir de estruturas de dados C++.
- Calcular e aplicar patches JSON entre versões de um documento.
- Serializar structs C++ para JSON ou formatos binários para armazenamento ou transporte.
Início rápido
- 1
Adicione o único arquivo de cabeçalho json.hpp do repositório ao seu projeto ou instale-o por meio de um gerenciador de pacotes
- 2
Inclua o cabeçalho no seu código C++ com #include <nlohmann/json.hpp> e comece a usar o tipo json
Antes de usar
- O README informa que existem bibliotecas JSON mais rápidas; por isso, esta prioriza a facilidade de uso em vez da velocidade.
Tópicos
Perguntas frequentes
- O que é json?
- Biblioteca C++11 header-only que permite analisar, criar, manipular e serializar JSON em C++ com uma sintaxe semelhante à da STL. JSON for Modern C++ é uma biblioteca C++ para trabalhar com valores JSON como se fossem tipos de dados nativos. Um valor JSON é representado por uma única classe, basic_json (com o alias nlohmann::json), que pode ser criada a partir de literais, contêineres da STL ou tipos definidos pelo usuário, e acessada com operadores e métodos familiares de contêineres.
- json é gratuito? Qual é a licença?
- json é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- json ainda é mantido?
- Manutenção ativa. O último commit de json foi em 21 de out. de 2026.
- Para que posso usar json?
- Ler arquivos de configuração ou payloads de API em uma aplicação C++. Montar respostas ou mensagens JSON a partir de estruturas de dados C++. Calcular e aplicar patches JSON entre versões de um documento. Serializar structs C++ para JSON ou formatos binários para armazenamento ou transporte.
- Como instalar json?
- Adicione o único arquivo de cabeçalho json.hpp do repositório ao seu projeto ou instale-o por meio de um gerenciador de pacotes Inclua o cabeçalho no seu código C++ com #include <nlohmann/json.hpp> e comece a usar o tipo json
- Onde consigo json?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/nlohmann/json
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Ferramenta para desktop e VS Code que permite criar, editar e comparar documentos JSON, além de gerar JSON a partir de classes de linguagens de programação.
Uma codificação compacta e legível por humanos para dados JSON, criada para reduzir o uso de tokens ao enviar dados estruturados em prompts para LLMs.
Um parser JSON em C++ que usa instruções SIMD para processar gigabytes de JSON por segundo com validação completa.
Biblioteca Java para converter objetos Java em JSON e vice-versa, inclusive objetos cujo código-fonte você não tem.
Um microframework C++ rápido, no estilo do Flask, para criar serviços web HTTP e WebSocket, distribuído como header-only e fácil de usar.