Sådan læser og skriver JSON-filer i C++

Sadan Laeser Og Skriver Json Filer I C



C++ er et alsidigt sprog, der har et sæt biblioteker til at håndtere JSON-data. JavaScript Object Notation (JSON) er et format til dataudveksling, som er let for mennesker at skrive og læse, og maskiner kan nemt generere og parse. Det bruges til transmission af data mellem webapplikationer og servere og til lagring af data samt konfiguration af filer.

Sådan læser og skriver JSON-filer i C++

JSON er et dataformat, der er en foretrukken måde at gemme og overføre strukturerede data på nettet. Den er let, hvilket gør overførsel af data let og resulterer i forbedret effektivitet og behandling af dataoverførsel. I C++ er rapidjson et bibliotek, der har funktioner til at parse og generere JSON. Dette bibliotek gør det ikke kun muligt at læse og skrive JSON-data, men tillader også manipulation og validering af JSON-objekter. Det understøtter også funktioner til at håndtere store datasæt af JSON på en streaming måde.







For at læse og skrive JSON-data ved hjælp af rapidjson, bruges rapidjson::Document-klassen. Denne klasse giver en API på højt niveau til generering og parsing af JSON-data fra en fil og gør også manipulation af data mulig.



Eksempel på at læse data fra JSON-fil i C++

Dette er et eksempel på kode til at læse data fra en JSON-fil i C++ ved hjælp af rapidjson-biblioteket:



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

bruger navneområde rapidjson;

int main ( )
{
// Åbn fil til læsning
FIL * fp = fopen ( 'eksempel.json' , 'r' ) ;

// Brug en FileReadStream til
// Læs dataene fra fil
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream er ( fp, læsebuffer,
størrelse på ( læsebuffer ) ) ;

// Parse JSON-dataene
// ved hjælp af et dokumentobjekt
rapidjson::Dokument d;
d.ParseStream ( er ) ;

// Luk fil
fluk ( fp ) ;

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

Vend tilbage 0 ;
}


Funktionen fopen() bruges til at åbne filen. Header-filen <<#include 'rapidjson/filereadstream.h'>> læser filens data i en streng, der er navngivet som json. Dokumentdokumentet er oprettet til at opbevare filens data. Strengen parses, og dens fejl kontrolleres, hvis der findes fejl, returnerer den en fejl ellers bruges dokumentet til at få adgang til JSON'ens data.





Eksempel på at skrive data til JSON-fil i C++

Rapidjson-biblioteket kan bruges til at skrive data i JSON-filer ved at oprette en Document-klasse. Dette er et eksempel på kode til at skrive data til JSON-filen i C++:



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

bruger navneområde rapidjson;

int main ( )
{
// Læs JSON fil
FIL * fp
= fopen ( 'eksempel.json' , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream er ( fp, readBuffer, sizeof ( læsebuffer ) ) ;
Dokument d;
d.ParseStream ( er ) ;
fluk ( fp ) ;


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

// Skriv JSON fil
FIL * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
char skrivebuffer [ 65536 ] ;
FileWriteStream os ( fp2, skrivebuffer,
størrelse på ( skriveBuffer ) ) ;
Forfatter < FileWriteStream > forfatter ( du ) ;
d. Accepter ( forfatter ) ;
fluk ( fp2 ) ;

Vend tilbage 0 ;
}


Dette program bruger standard header-filer til at inkludere rapidjson. Dokumentobjektet indeholder dataene fra JSON-filen. Medlemmets navn og alder føjes til JSON-objektet. En output filstrøm oprettes og forberedes til at skrive dataene til filen.


Navn og alder er begge skrevet i filen og vist på outputterminalen.

Konklusion

JSON er et dataformat, der gør det muligt at reducere størrelsen af ​​data til overførsel og resulterer i forbedret effektivitet og behandling af dataoverførsel. For at læse og skrive JSON-data ved hjælp af rapidjson, bruges rapidjson::Document-klassen. Denne klasse giver en API på højt niveau til generering og parsing af JSON-data fra en fil og gør det også muligt at manipulere data.