Como ler e escrever arquivos JSON em C++

Como Ler E Escrever Arquivos Json Em C



C++ é uma linguagem versátil que possui um conjunto de bibliotecas para lidar com dados JSON. JavaScript Object Notation (JSON) é um formato para intercâmbio de dados que é fácil para humanos escreverem e lerem e as máquinas podem facilmente gerar e analisar. É utilizado para a transmissão de dados entre aplicações web e servidores, e para armazenamento de dados, bem como configuração de arquivos.

Como ler e escrever arquivos JSON em C++

JSON é um formato de dados que é a forma preferida de armazenar e transferir dados estruturados na web. É leve, o que facilita a transferência de dados e resulta em maior eficiência e processamento de transferência de dados. Em C++ rapidjson é uma biblioteca que possui funções para analisar e gerar o JSON. Esta biblioteca não só permite ler e escrever os dados JSON, mas também permite a manipulação e validação de objetos JSON. Ele também oferece suporte a funções para lidar com grandes conjuntos de dados JSON em streaming.







Para ler e gravar os dados JSON usando rapidjson, a classe rapidjson::Document é usada. Esta classe fornece uma API de alto nível para gerar e analisar dados JSON de um arquivo e também possibilita a manipulação de dados.



Exemplo para ler dados de arquivo JSON em C++

Este é um exemplo de código para ler dados de um arquivo JSON em C++ usando a biblioteca rapidjson:



#include 'rapidjson/document.h'
#include 'rapidjson/stringbuffer.h'
#include 'rapidjson/filereadstream.h'
#include
#include

usando o namespace rapidjson;

principal interno ( )
{
// Abra o arquivo para leitura
ARQUIVO * fp = fopen ( 'exemplo.json' , 'r' ) ;

// Use um FileReadStream para
// ler os dados do arquivo
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream é ( fp, readBuffer,
tamanho de ( readBuffer ) ) ;

// Analise os dados JSON
// usando um objeto Document
rapidjson::Documento d;
d.ParseStream ( é ) ;

// Feche o arquivo
fechar ( FP ) ;

// Acesse os dados em o documento JSON
std::cout << d [ 'Nome' ] .GetString ( ) << std::endl;
std::cout << d [ 'Idade' ] .Tonificado ( ) << std::endl;

retornar 0 ;
}


A função fopen() é usada para abrir o arquivo. O arquivo de cabeçalho <<#include “rapidjson/filereadstream.h”>> lê os dados do arquivo em uma string chamada json. O documento doc é criado para conter os dados do arquivo. A string é analisada e seus erros são verificados, se forem encontrados erros ela retorna um erro, caso contrário o Documento é usado para acessar os dados do JSON.





Exemplo para gravar dados em arquivo JSON em C++

A biblioteca rapidjson pode ser usada para gravar os dados em arquivos JSON criando uma classe Document. Este é um exemplo de código para gravar dados no arquivo JSON em C++:



#include 'rapidjson/document.h'
#include 'rapidjson/filereadstream.h'
#include 'rapidjson/filewritestream.h'
#include 'rapidjson/writer.h'

usando o namespace rapidjson;

principal interno ( )
{
// Ler JSON arquivo
ARQUIVO * FP
= fopen ( 'exemplo.json' , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream é ( fp, readBuffer, tamanho de ( readBuffer ) ) ;
Documento d;
d.ParseStream ( é ) ;
fechar ( FP ) ;


Valor & s = d [ 'Nome' ] ;
s.SetString ( 'Simão' , d.GetAllocator ( ) ) ;

// Escreva JSON arquivo
ARQUIVO * fp2 = fopen ( 'exemplo_modificado.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
    FileWriteStream os ( fp2, writeBuffer,
tamanho de ( escreverBuffer ) ) ;
Escritor < FileWriteStream > escritor ( os ) ;
d.Aceitar ( escritor ) ;
fechar ( FP2 ) ;

retornar 0 ;
}


Este programa usa os arquivos de cabeçalho padrão para incluir o arquivo rapidjson. O objeto Document contém os dados do arquivo JSON. O nome e a idade do membro são adicionados ao objeto JSON. Um fluxo de arquivo de saída é criado e preparado para gravar os dados no arquivo.


O nome e a idade são escritos no arquivo e exibidos no terminal de saída.

Conclusão

JSON é um formato de dados que permite reduzir o tamanho dos dados para transferência e resulta em maior eficiência e processamento de transferência de dados. Para ler e gravar os dados JSON usando rapidjson, a classe rapidjson::Document é usada. Esta classe fornece uma API de alto nível para gerar e analisar dados JSON de um arquivo e também possibilita a manipulação de dados.