Come leggere e scrivere file JSON in C++

Come Leggere E Scrivere File Json In C



C++ è un linguaggio versatile che dispone di un set di librerie per gestire i dati JSON. JavaScript Object Notation (JSON) è un formato per lo scambio di dati che è facile da scrivere e leggere per gli esseri umani e che le macchine possono facilmente generare e analizzare. Viene utilizzato per la trasmissione di dati tra applicazioni web e server e per l'archiviazione di dati, nonché per la configurazione di file.

Come leggere e scrivere file JSON in C++

JSON è un formato dati che rappresenta il modo preferito per archiviare e trasferire dati strutturati sul Web. È leggero, il che semplifica il trasferimento dei dati e si traduce in una migliore efficienza ed elaborazione del trasferimento dei dati. In C++ rapidjson è una libreria che ha funzioni per analizzare e generare JSON. Questa libreria non solo consente di leggere e scrivere i dati JSON, ma consente anche la manipolazione e la convalida di oggetti JSON. Supporta inoltre funzioni per la gestione di grandi set di dati JSON in modalità streaming.







Per leggere e scrivere i dati JSON utilizzando rapidjson, viene utilizzata la classe rapidjson::Document. Questa classe fornisce un'API di alto livello per generare e analizzare dati JSON da un file e rende possibile anche la manipolazione dei dati.



Esempio per leggere i dati dal file JSON in C++

Questo è un codice di esempio per leggere i dati da un file JSON in C++ utilizzando la libreria rapidjson:



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

utilizzando lo spazio dei nomi rapidjson;

int principale ( )
{
// Apri il file per lettura
FILE * fp = fopen ( 'esempio.json' , 'R' ) ;

// Utilizzare un FileReadStream per
// Leggere i dati da file
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream è ( fp, readBuffer,
taglia di ( readBuffer ) ) ;

// Analizzare i dati JSON
// utilizzando un oggetto Document
rapidjson::Documento d;
d.ParseStream ( È ) ;

// Chiudi il file
fclose ( fp ) ;

// Accedi ai dati In il documento JSON
std::cout << D [ 'Nome' ] .GetString ( ) << std::endl;
std::cout << D [ 'Età' ] .colorato ( ) << std::endl;

ritorno 0 ;
}


La funzione fopen() viene utilizzata per aprire il file. Il file di intestazione <<#include “rapidjson/filereadstream.h”>> legge i dati del file in una stringa denominata json. Il documento doc viene creato per contenere i dati del file. La stringa viene analizzata e i suoi errori vengono controllati, se vengono rilevati errori restituisce un errore altrimenti viene utilizzato il Documento per accedere ai dati del JSON.





Esempio per scrivere dati su file JSON in C++

La libreria rapidjson può essere utilizzata per scrivere i dati nei file JSON creando una classe Document. Questo è un codice di esempio per scrivere dati nel file JSON in C++:



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

utilizzando lo spazio dei nomi rapidjson;

int principale ( )
{
// Leggi JSON file
FILE * fp
= fopen ( 'esempio.json' , 'RB' ) ;
char readBuffer [ 65536 ] ;
FileReadStream è ( fp, readBuffer, sizeof ( readBuffer ) ) ;
Documento d;
d.ParseStream ( È ) ;
fclose ( fp ) ;


Valore & s = d [ 'Nome' ] ;
inSetString ( 'Simone' , d.GetAllocator ( ) ) ;

// Scrivi JSON file
FILE * fp2 = fopen ( 'esempio_modificato.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
Sistema operativo FileWriteStream ( fp2, writeBuffer,
taglia di ( writeBuffer ) ) ;
scrittore < FileWriteStream > scrittore ( Voi ) ;
d.Accetta ( scrittore ) ;
fclose ( fp2 ) ;

ritorno 0 ;
}


Questo programma utilizza i file di intestazione standard per includere rapidjson. L'oggetto Document contiene i dati del file JSON. Il nome e l'età del membro vengono aggiunti all'oggetto JSON. Viene creato e preparato un flusso di file di output per scrivere i dati nel file.


Sia il nome che l'età vengono scritti nel file e visualizzati sul terminale di output.

Conclusione

JSON è un formato dati che consente di ridurre la dimensione dei dati da trasferire e si traduce in una migliore efficienza ed elaborazione del trasferimento dei dati. Per leggere e scrivere i dati JSON utilizzando rapidjson, viene utilizzata la classe rapidjson::Document. Questa classe fornisce un'API di alto livello per generare e analizzare dati JSON da un file e rende possibile anche la manipolazione dei dati.