O que é JSON?
JSON é uma representação leve baseada em texto para armazenar e transferir dados estruturados de maneira organizada. Os dados JSON são representados na forma de listas ordenadas e pares de valores-chave. JSON significa JAvaSCRIP Oobjeção NOtation. Como o nome completo indica, é derivado de JavaScript. No entanto, os dados JSON são suportados na maioria das linguagens de programação populares.
É frequentemente usado para transferir os dados do servidor para uma página da web. É muito mais fácil e limpo representar os dados estruturados no JSON do que XML.
Regra da sintaxe json
Aqui estão as regras da sintaxe JSON:
O que são dados JSON?
Os dados JSON são representados na forma de pares de valor-chave. Isso é semelhante a um dicionário ou hash em outras linguagens de programação.
"Nome": "Drake"
Este é um exemplo de dados JSON simples. A chave aqui é "Nome" e "Drake" é o valor correspondente. A chave, eu.e., "Nome" e o valor, eu.e., "Drake" é separado por um cólon.
Extensão do arquivo JSON
Os dados JSON são normalmente armazenados no arquivo com a extensão de “.json ”. Por exemplo, para armazenar os dados do funcionário, você pode simplesmente nomear o arquivo como 'funcionário.JSON '. Este seria um arquivo de texto simples. Você pode abrir este arquivo json em qualquer um dos seus editores de texto favoritos.
Objeto json
O objeto JSON nada mais é do que os dados JSON incluídos no aparelho encaracolado. Aqui está um exemplo de objeto JSON:
Um objeto JSON pode conter vários dados JSON. Cada dados JSON é separado por uma vírgula. Os dados JSON são representados como pares de valor-chave. A chave, eu.e., "Nome" e o valor, eu.e., "Drake" é separado por um cólon. No exemplo acima, existem quatro pares de valor-chave. A primeira chave é "nome"; "Drake" é o valor correspondente para isso. Da mesma forma, "Funcionário", "telefone" e "departamento" são as outras três chaves.
JSON Array
Uma matriz JSON pode conter vários objetos JSON se separados por vírgula. A matriz JSON está fechada dentro de um suporte quadrado. Vejamos um exemplo de uma matriz JSON:
"Alunos": [Este é um exemplo de uma matriz JSON. Aqui, "estudantes" está fechado com um suporte quadrado, eu.e., Array, e contém quatro objetos JSON. Cada um desses objetos é representado na forma de pares de valor-chave e é separado por uma vírgula.
Um arquivo json de amostra
Agora, como entendemos JSON Data, JSON Objects, JSON Array, veremos um exemplo de um arquivo JSON:
Analisar bibliotecas em C ++:
Não há solução nativa para analisar dados JSON em C++. No entanto, existem várias bibliotecas para analisar dados JSON em C++. Neste artigo, vamos analisar as duas bibliotecas mais populares para analisar dados JSON em C++. Aqui estão os links do Github para analisar dados JSON:
Você pode baixar essas bibliotecas para poder executar os exemplos mostrados abaixo.
Exemplos
Agora, temos um entendimento básico de dados JSON, objetos, matrizes e bibliotecas de análise disponíveis. Agora vamos olhar para alguns exemplos para analisar dados JSON em C ++:
Por exemplo, 1 e Exemplo-2, vamos usar a biblioteca “Nlohmann”. No caso do Exemplo-3, usaremos a biblioteca "Rapidjson".
Exemplo 1: Parse json em c++
Neste programa de exemplo, demonstraremos como acessar valores de dados JSON em C++.
#incluir
#include "JSON.HPP "
usando json = nlohmann :: json;
int main ()
// jDemployes
JSON JDEMPLAPEES =
"FirstName", "Sean",
"LastName", "Brown",
"StudentId", 21453,
"Departamento", "Computador SC.";
// Acesse os valores
std :: string fname = jdemployees.valor ("primeiro nome", "oops");
std :: string lname = jdemployees.value ("lastName", "oops");
int sid = jdemployes.valor ("StudentId", 0);
std :: string departamento = jDemployes.valor ("departamento", "oops");
// imprima os valores
std :: cout << "First Name: " << fName << std::endl;
std :: cout << "Last Name: " << lName << std::endl;
std :: cout << "Student ID: " << sID << std::endl;
std :: cout << "Department: " << dept << std::endl;
retornar 0;
Exemplo 2: Parse e serialize JSON em C++
Neste programa de exemplo, vamos ver como analisar e serializar JSON em C++. Estamos usando "JSON :: parse ()" para analisar os dados JSON.
#incluir
#include "JSON.HPP "
#incluir
usando json = nlohmann :: json;
int main ()
// aqui está um texto JSON
char text [] = r "(
"Livro":
"Largura": 450,
"Altura": 30,
"Title": "Hello World",
"Isbiografia": Falso,
"NUMOFCOPIES": 4,
"Bibliotecas": [2319, 1406, 3854, 987]
) ";
// Vamos analisar e serializar JSON
json j_complete = json :: parse (texto);
std :: cout << std::setw(4) << j_complete << std::endl;
Exemplo 3: Parse JSON em C++
Agora, demonstraremos como analisar a string json usando a biblioteca Rapidjson. Rapidjson foi originalmente inspirado pelo RapidXML. Neste programa de exemplo, estamos analisando uma string json em DOM. Declaramos "mydoc" do tipo "documento" e depois usando o "mydoc.Método parse () ”para analisar a corda JSON.
#incluir
#include "Rapidjson/Writer.h "
#include "RAPIDJSON/DOCUMENTO.h "
#include "rapidjson/stringbuffer.h "
usando o espaço para nome Rapidjson;
int main ()
const char* json = "" FirstName ":" Sean "," LastName ":" Brown "," Empid ": 21453,
"Departamento": "Computador SC."";
// Analisar a corda JSON em DOM
Documentar mydoc;
mydoc.Parse (JSON);
// DOM para string
Buffer de StringBuffer;
Escritorescritor (buffer);
mydoc.Aceitar (escritor);
// Imprima a saída
std :: cout << buffer.GetString() << std::endl;
retornar 0;
Conclusão
Neste artigo, discutimos brevemente dados JSON, objeto, matriz e sintaxe. Como sabemos, não existe uma solução nativa para a análise de dados JSON em C ++; Usamos duas bibliotecas diferentes para analisar dados JSON em C++. Procuramos três exemplos diferentes para demonstrar o mecanismo de análise de dados JSON em C++. Em comparação com a biblioteca "Nlohmann", o Rapidjson é pequeno, rápido e amigável.