Hvordan lese og skrive JSON-filer i C++

Hvordan Lese Og Skrive Json Filer I C



C++ er et allsidig språk som har et sett med biblioteker for å håndtere JSON-data. JavaScript Object Notation (JSON) er et format for datautveksling som er enkelt for mennesker å skrive og lese, og maskiner kan enkelt generere og analysere. Den brukes til overføring av data mellom webapplikasjoner og servere, og for lagring av data, samt konfigurasjon av filer.

Hvordan lese og skrive JSON-filer i C++

JSON er et dataformat som er en foretrukket måte å lagre og overføre strukturerte data på nettet. Den er lett, noe som gjør overføringen av data enkel og resulterer i forbedret effektivitet og behandling av dataoverføring. I C++ er rapidjson et bibliotek som har funksjoner for å analysere og generere JSON. Dette biblioteket lar en ikke bare lese og skrive JSON-data, men tillater også manipulering og validering av JSON-objekter. Den støtter også funksjoner for håndtering av store datasett med JSON på en streaming måte.







For å lese og skrive JSON-dataene ved hjelp av rapidjson, brukes rapidjson::Document-klassen. Denne klassen gir et høyt nivå API for å generere og analysere JSON-data fra en fil og gjør manipulering av data også mulig.



Eksempel for å lese data fra JSON-fil i C++

Dette er en eksempelkode for å lese data fra en JSON-fil i C++ ved å bruke rapidjson-biblioteket:



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

bruker navneområdet rapidjson;

int main ( )
{
// Åpne fil til lesning
FIL * fp = fopen ( «example.json» , 'r' ) ;

// Bruk en FileReadStream for å
// lese dataene fra fil
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream er ( fp, readBuffer,
størrelsen av ( lesebuffer ) ) ;

// Parse JSON-dataene
// ved hjelp av et dokumentobjekt
rapidjson::Dokument d;
d.ParseStream ( er ) ;

// Lukk fil
flukk ( fp ) ;

// Få tilgang til dataene i JSON-dokumentet
std::cout << d [ 'Navn' ] .GetString ( ) << std::endl;
std::cout << d [ 'Alder' ] .Tonet ( ) << std::endl;

komme tilbake 0 ;
}


Fopen()-funksjonen brukes til å åpne filen. Overskriftsfilen <<#include “rapidjson/filereadstream.h”>> leser dataene til filen i en streng som heter json. Dokumentdokumentet er opprettet for å holde dataene til filen. Strengen blir analysert, og dens feil blir sjekket, hvis feil blir funnet, returnerer den en feil ellers brukes dokumentet for å få tilgang til dataene til JSON.





Eksempel for å skrive data til JSON-fil i C++

Rapidjson-biblioteket kan brukes til å skrive dataene i JSON-filer ved å opprette en Document-klasse. Dette er en eksempelkode for å skrive data til JSON-filen i C++:



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

bruker navneområdet rapidjson;

int main ( )
{
// Les JSON fil
FIL * fp
= fopen ( «example.json» , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream er ( fp, readBuffer, sizeof ( lesebuffer ) ) ;
Dokument d;
d.ParseStream ( er ) ;
flukk ( fp ) ;


Verdi & s = d [ 'Navn' ] ;
s.SetString ( 'Simon' , d.GetAllocator ( ) ) ;

// Skriv JSON fil
FIL * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
FileWriteStream os ( fp2, skrivebuffer,
størrelsen av ( skriveBuffer ) ) ;
Forfatter < FileWriteStream > forfatter ( du ) ;
d. Godta ( forfatter ) ;
flukk ( fp2 ) ;

komme tilbake 0 ;
}


Dette programmet bruker standard header-filer for å inkludere rapidjson. Dokumentobjektet inneholder dataene til JSON-filen. Navnet og alderen til medlemmet legges til JSON-objektet. En utdatafilstrøm opprettes og klargjøres for å skrive dataene til filen.


Navn og alder er begge skrevet i filen og vises på utgangsterminalen.

Konklusjon

JSON er et dataformat som gjør det mulig å redusere størrelsen på data for overføringen og resulterer i forbedret effektivitet og behandling av dataoverføring. For å lese og skrive JSON-dataene ved hjelp av rapidjson, brukes rapidjson::Document-klassen. Denne klassen gir et høynivå-API for å generere og analysere JSON-data fra en fil og gjør manipulering av data også mulig.