Com llegir i escriure fitxers JSON en C++

Com Llegir I Escriure Fitxers Json En C



C++ és un llenguatge versàtil que té un conjunt de biblioteques per tractar dades JSON. La notació d'objectes JavaScript (JSON) és un format per a l'intercanvi de dades que els humans poden escriure i llegir fàcilment i que les màquines poden generar i analitzar fàcilment. S'utilitza per a la transmissió de dades entre aplicacions web i servidors, i per emmagatzemar dades, així com la configuració de fitxers.

Com llegir i escriure fitxers JSON en C++

JSON és un format de dades que és una forma preferida d'emmagatzemar i transferir dades estructurades al web. És lleuger, cosa que facilita la transferència de dades i augmenta l'eficiència i el processament de la transferència de dades. En C++, rapidjson és una biblioteca que té funcions per analitzar i generar el JSON. Aquesta biblioteca no només permet llegir i escriure les dades JSON, sinó que també permet la manipulació i validació d'objectes de JSON. També admet funcions per gestionar grans conjunts de dades de JSON de manera en streaming.







Per llegir i escriure les dades JSON amb rapidjson, s'utilitza la classe rapidjson::Document. Aquesta classe proporciona una API d'alt nivell per generar i analitzar dades JSON d'un fitxer i també fa possible la manipulació de dades.



Exemple per llegir dades del fitxer JSON en C++

Aquest és un exemple de codi per llegir dades d'un fitxer JSON en C++ mitjançant la biblioteca rapidjson:



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

utilitzant l'espai de noms rapidjson;

int principal ( )
{
// Obriu el dossier per lectura
DOSSIER * fp = fopen ( 'exemple.json' , 'r' ) ;

// Utilitzeu un FileReadStream per
// llegir les dades de la dossier
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream és ( fp, readBuffer,
mida de ( readBuffer ) ) ;

// Analitzeu les dades JSON
// utilitzant un objecte Document
rapidjson::Document d;
d.ParseStream ( és ) ;

// Tanca el dossier
f tancar ( fp ) ;

// Accedir a les dades en el document JSON
std::cout << d [ 'Nom' ] .GetString ( ) << std::endl;
std::cout << d [ 'Edat' ] .Tintat ( ) << std::endl;

tornar 0 ;
}


La funció fopen() s'utilitza per obrir el fitxer. El fitxer de capçalera <<#include “rapidjson/filereadstream.h”>> llegeix les dades del fitxer en una cadena que s'anomena json. El document doc es crea per contenir les dades del fitxer. S'analitza la cadena i es comproven els seus errors, si es troben errors, retorna un error, en cas contrari, el document s'utilitza per accedir a les dades del JSON.





Exemple per escriure dades al fitxer JSON en C++

La biblioteca rapidjson es pot utilitzar per escriure les dades en fitxers JSON creant una classe de document. Aquest és un exemple de codi per escriure dades al fitxer JSON en C++:



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

utilitzant l'espai de noms rapidjson;

int principal ( )
{
// Llegiu JSON dossier
DOSSIER * fp
= fopen ( 'exemple.json' , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream és ( fp, readBuffer, sizeof ( readBuffer ) ) ;
document d;
d.ParseStream ( és ) ;
f tancar ( fp ) ;


Valor & s = d [ 'Nom' ] ;
s.SetString ( 'Simó' , d.GetAllocator ( ) ) ;

// Escriu JSON dossier
DOSSIER * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
FileWriteStream OS ( fp2, writeBuffer,
mida de ( writeBuffer ) ) ;
Escriptor < FileWriteStream > escriptor ( vostè ) ;
d.Acceptar ( escriptor ) ;
f tancar ( fp2 ) ;

tornar 0 ;
}


Aquest programa utilitza els fitxers de capçalera estàndard per incloure el rapidjson. L'objecte Document conté les dades del fitxer JSON. El nom i l'edat del membre s'afegeixen a l'objecte JSON. Es crea i es prepara un flux de fitxers de sortida per escriure les dades al fitxer.


El nom i l'edat estan escrits al fitxer i es mostren al terminal de sortida.

Conclusió

JSON és un format de dades que permet reduir la mida de les dades per a la transferència i augmenta l'eficiència i el processament de la transferència de dades. Per llegir i escriure les dades JSON amb rapidjson, s'utilitza la classe rapidjson::Document. Aquesta classe proporciona una API d'alt nivell per generar i analitzar dades JSON d'un fitxer i també fa possible la manipulació de dades.