nlohmann/json para C++: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução ao nlohmann/json: o que é e para que serve

\n\n

A biblioteca nlohmann/json (também conhecida como JSON for Modern C++) é uma das bibliotecas mais populares e convenientes para trabalhar com JSON na linguagem C++. Ela foi desenvolvida por Niels Lohmann e é distribuída sob a licença MIT. O objetivo principal da biblioteca é fornecer uma interface intuitiva, moderna e segura para análise, criação, modificação e serialização de dados JSON.

\n\n

Para que serve? No desenvolvimento moderno, JSON (JavaScript Object Notation) é o padrão de facto para troca de dados entre serviços, armazenamento de configurações, trabalho com APIs e aplicações web. A biblioteca padrão do C++ não possui suporte nativo a JSON, então os desenvolvedores precisam escrever seus próprios analisadores ou usar soluções de terceiros. O nlohmann/json resolve esse problema, oferecendo:

\n\n
    \n
  • Sintaxe simples — trabalhar com JSON lembra o trabalho com contêineres STL integrados (std::map, std::vector).
  • \n
  • Segurança de tipos — conversão automática entre tipos C++ e JSON.
  • \n
  • Alto desempenho — a biblioteca é otimizada para velocidade e memória.
  • \n
  • Multiplataforma — funciona em Windows, Linux, macOS e também em sistemas embarcados.
  • \n
  • Suporte completo ao padrão JSON — incluindo objetos aninhados, arrays, null, valores booleanos, números e strings.
  • \n
\n\n

A biblioteca é amplamente utilizada em projetos industriais, como motores de jogos, servidores web, ferramentas de análise de dados e dispositivos IoT.

\n\n

Instalação do nlohmann/json

\n\n

Ao contrário do Python (onde se usa pip), em C++ a instalação de bibliotecas pode ser feita de várias maneiras. Vamos ver as mais populares.

\n\n

Método 1: Header-only (recomendado para iniciantes)

\n

A biblioteca nlohmann/json é header-only — isso significa que para usá-la basta baixar um único arquivo de cabeçalho json.hpp e incluí-lo no projeto. Não é necessária compilação, vinculação ou instalação de dependências.

\n
    \n
  1. Baixe o arquivo json.hpp do repositório oficial (última versão: v3.11.3).
  2. \n
  3. Coloque-o na pasta do seu projeto, por exemplo, include/json.hpp.
  4. \n
  5. No código-fonte, inclua: #include "json.hpp".
  6. \n
\n\n

Método 2: Instalação via gerenciadores de pacotes

\n

Se você usa sistemas de build modernos, pode instalar a biblioteca através de um gerenciador de pacotes:

\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
\n\n

Método 3: CMake FetchContent

\n

Para projetos CMake, você pode baixar automaticamente a biblioteca durante a compilação:

\n
include(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\n

Início rápido: primeiro exemplo

\n\n

Vamos escrever um programa simples que cria um objeto JSON, exibe-o na tela e depois analisa uma string JSON de volta.

\n\n
#include <iostream>\n#include "json.hpp"\n\nusing json = nlohmann::json;\n\nint main() {\n    // 1. Criação de um objeto JSON\n    json person = {\n        {"name", "Alice"},\n        {"age", 30},\n        {"is_student", false},\n        {"skills", {"C++", "Python", "JSON"}},\n                    

Recommendations