Json C++ - Para criação e parsing de JSON com C++

JSON C++ é um utilitário para C++ Moderno


Json C++ - Para criação e parsing de JSON com C++


JSON C++ é um utilitário para C++ Moderno que serve para criar e ler arquivos JSON.

Instalação

Certifique-se de já possuir o Git, GCC ou Clang, CMake, GNU Make instalados no seu sistema.

Em seguida clone, construa e instale com os seguintes comandos:

git clone https://github.com/nlohmann/json
cd json
mkdir build && cd build
cmake ..
make
sudo make install

Ele será Copiado/Instalado nos diretórios similares aos abaixo:

-- Install configuration: ""
-- Up-to-date: /usr/local/include
-- Installing: /usr/local/include/nlohmann
-- Installing: /usr/local/include/nlohmann/json.hpp
-- Installing: /usr/local/lib64/cmake/nlohmann_json/nlohmann_jsonConfig.cmake
-- Installing: /usr/local/lib64/cmake/nlohmann_json/nlohmann_jsonConfigVersion.cmake
-- Installing: /usr/local/lib64/cmake/nlohmann_json/nlohmann_jsonTargets.cmake
-- Installing: /usr/local/lib64/pkgconfig/nlohmann_json.pc


Exemplo básico de utilização

Para criar um JSON básico.

vim hello-json.cpp

#include <iostream>
#include <nlohmann/json.hpp>

int main(){
  nlohmann::json j;
  j.push_back("Hello");
  j.emplace_back("World");
  std::cout << j << '\n';
}

g++ hello-json.cpp e rode: ./a

Possível saída:

["Hello","World"]

Imprimindo somente o primeiro elemento do JSON:

#include <iostream>
#include <nlohmann/json.hpp>

int main(){
  nlohmann::json j;
  j.push_back("Hello");
  j.emplace_back("World");
  std::cout << j[0] << '\n';
}

Possível saída: "Hello"


Fazendo parsing

Exemplo de um arquivo JSON example.json :

{
  "number": 42,
  "website": "Terminal Root",
  "author": "Marcos Oliveira",
  "parsing": true,
  "details": {
    "tutorial": "json C++",
    "id": 1
  },
  "other": null
}

Imprimir todo o conteúdo:

#include <iostream>
#include <nlohmann/json.hpp>
#include <fstream>

int main(){
  std::ifstream file("./example.json");
  nlohmann::json j;
  file >> j;
  std::cout << j << '\n';
}

Possível saída, note que a exibição foi alterada para ordem alfabética:

{"author":"Marcos Oliveira","details":{"id":1,"tutorial":"json C++"},"number":42,"other":null,"parsing":true,"website":"Terminal Root"}

Imprimir o conteúdo com formatação:

#include <iostream>
#include <nlohmann/json.hpp>
#include <fstream>

int main(){
  std::ifstream file("./example.json");
  nlohmann::json j;
  file >> j;
  std::cout << std::setw(2) << j << '\n';
}

Possível saída,note que a exibição foi alterada para ordem alfabética :

{
  "author": "Marcos Oliveira",
  "details": {
    "id": 1,
    "tutorial": "json C++"
  },
  "number": 42,
  "other": null,
  "parsing": true,
  "website": "Terminal Root"
}

Imprimir somente o conteúdo de website

#include <iostream>
#include <nlohmann/json.hpp>
#include <fstream>

int main(){
  std::ifstream file("./example.json");
  nlohmann::json j;
  file >> j;
  std::string website = j["website"];
  std::cout << website << '\n';
}

Possível saída: Terminal Root .


Imprimir o conteúdo de {"details": {"tutorial"}}:

#include <iostream>
#include <nlohmann/json.hpp>
#include <fstream>

int main(){
  std::ifstream file("./example.json");
  nlohmann::json j;
  file >> j;
  std::string jstr = j["details"]["tutorial"];
  std::cout << jstr << '\n';
}

Possível saída: json C++ .


Para uma documentação completa acesse o repositório e a página oficial .


cpp cppdaily json


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo

Artigos Relacionados




Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!