Kuidas lugeda ja kirjutada JSON-faile C++-s

Kuidas Lugeda Ja Kirjutada Json Faile C S



C++ on mitmekülgne keel, millel on JSON-i andmetega tegelemiseks hulk teeke. JavaScript Object Notation (JSON) on andmevahetuse vorming, mida inimestel on lihtne kirjutada ja lugeda ning masinad saavad hõlpsasti genereerida ja sõeluda. Seda kasutatakse andmete edastamiseks veebirakenduste ja serverite vahel ning andmete salvestamiseks ja failide konfigureerimiseks.

Kuidas lugeda ja kirjutada JSON-faile C++-s

JSON on andmevorming, mis on eelistatud viis struktureeritud andmete salvestamiseks ja edastamiseks veebis. See on kerge, mis muudab andmete edastamise lihtsaks ning parandab andmeedastuse tõhusust ja töötlemist. C++ puhul on rapidjson teek, millel on funktsioonid JSON-i sõelumiseks ja genereerimiseks. See teek võimaldab mitte ainult lugeda ja kirjutada JSON-i andmeid, vaid võimaldab ka JSON-i objekte manipuleerida ja kinnitada. Samuti toetab see funktsioone suurte JSON-i andmekogumite voogesituse viisil töötlemiseks.







JSON-andmete lugemiseks ja kirjutamiseks rapidjsoni abil kasutatakse rapidjson::Document klassi. See klass pakub kõrgetasemelist API-d failist JSON-andmete genereerimiseks ja sõelumiseks ning teeb võimalikuks ka andmetega manipuleerimise.



Näide andmete lugemiseks JSON-failist C++-s

See on näide koodist andmete lugemiseks JSON-failist C++-s, kasutades rapidjsoni teeki:



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

kasutades nimeruumi rapidjson;

int main ( )
{
// Ava faili jaoks lugemist
FAIL * fp = fopen ( 'example.json' , 'r' ) ;

// Kasutage FileReadStreami
// lugeda andmed alates faili
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream on ( fp, lugemispuhver,
suurus ( loe puhver ) ) ;

// Parsige JSON-andmeid
// kasutades Dokumendi objekti
rapidjson::Dokument d;
d.ParseStream ( on ) ;

// Sulgege faili
fclose ( fp ) ;

// Juurdepääs andmetele sisse JSON-dokument
std::cout << d [ 'nimi' ] .GetString ( ) << std::endl;
std::cout << d [ 'vanus' ] .Toonitud ( ) << std::endl;

tagasi 0 ;
}


Faili avamiseks kasutatakse funktsiooni fopen(). Päisefail <<#include “rapidjson/filereadstream.h”>> loeb faili andmeid stringis, mille nimi on json. Dokumendidokument luuakse faili andmete hoidmiseks. String sõelutakse ja selle vigu kontrollitakse, vigade leidmisel tagastab see vea, vastasel juhul kasutatakse dokumenti JSON-i andmetele juurdepääsuks.





Näide andmete kirjutamiseks JSON-faili C++-s

Rapidjsoni teeki saab kasutada andmete kirjutamiseks JSON-failidesse, luues dokumendiklassi. See on näide koodist andmete kirjutamiseks JSON-faili C++ keeles:



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

kasutades nimeruumi rapidjson;

int main ( )
{
// Lugege JSON-i faili
FAIL * fp
= fopen ( 'example.json' , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream on ( fp, lugemispuhver, suurus ( loe puhver ) ) ;
dokument d;
d.ParseStream ( on ) ;
fclose ( fp ) ;


Väärtus & s = d [ 'nimi' ] ;
s.SetString ( 'Simon' , d.GetAllocator ( ) ) ;

// Kirjutage JSON faili
FAIL * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
FileWriteStream os ( fp2, writeBuffer,
suurus ( writeBuffer ) ) ;
Kirjanik < FileWriteStream > kirjanik ( sina ) ;
d. Nõustu ( kirjanik ) ;
fclose ( fp2 ) ;

tagasi 0 ;
}


See programm kasutab rapidjsoni lisamiseks standardseid päisefaile. Dokumendi objekt sisaldab JSON-faili andmeid. JSON-objektile lisatakse liikme nimi ja vanus. Luuakse väljundfailivoog, mis valmistatakse ette andmete faili kirjutamiseks.


Nii nimi kui vanus kirjutatakse faili ja kuvatakse väljundterminalis.

Järeldus

JSON on andmevorming, mis võimaldab vähendada edastatavate andmete mahtu ning parandab andmeedastuse tõhusust ja töötlemist. JSON-andmete lugemiseks ja kirjutamiseks rapidjsoni abil kasutatakse rapidjson::Document klassi. See klass pakub kõrgetasemelist API-d failist JSON-andmete genereerimiseks ja sõelumiseks ning teeb võimalikuks ka andmetega manipuleerimise.