Kaip skaityti ir rašyti JSON failus C++

Kaip Skaityti Ir Rasyti Json Failus C



C++ yra universali kalba, turinti bibliotekų rinkinį, skirtą tvarkyti JSON duomenis. „JavaScript Object Notation“ (JSON) yra duomenų mainų formatas, kurį žmonėms lengva rašyti ir skaityti, o mašinos gali lengvai generuoti ir analizuoti. Jis naudojamas duomenims perduoti tarp žiniatinklio programų ir serverių bei duomenims saugoti, taip pat failų konfigūravimui.

Kaip skaityti ir rašyti JSON failus C++

JSON yra duomenų formatas, kuris yra pageidaujamas struktūrinių duomenų saugojimo ir perdavimo žiniatinklyje būdas. Jis yra lengvas, todėl duomenų perkėlimas yra paprastas ir pagerina duomenų perdavimo efektyvumą bei apdorojimą. C++ kalboje rapidjson yra biblioteka, turinti JSON analizavimo ir generavimo funkcijas. Ši biblioteka ne tik leidžia skaityti ir rašyti JSON duomenis, bet ir leidžia manipuliuoti bei patvirtinti JSON objektus. Jis taip pat palaiko didelių JSON duomenų rinkinių apdorojimo srautiniu būdu funkcijas.







Norint skaityti ir rašyti JSON duomenis naudojant rapidjson, naudojama rapidjson::Document klasė. Ši klasė suteikia aukšto lygio API JSON duomenims iš failo generuoti ir analizuoti, taip pat leidžia manipuliuoti duomenimis.



Pavyzdys, kaip skaityti duomenis iš JSON failo C++

Tai yra kodo pavyzdys, skirtas nuskaityti duomenis iš JSON failo C++ naudojant rapidjson biblioteką:



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

naudojant vardų erdvę rapidjson;

tarp pagrindinis ( )
{
// Atidaryk failą dėl skaitymas
FAILAS * fp = fopen ( 'example.json' , 'r' ) ;

// Naudokite „FileReadStream“, kad
// skaityti duomenis iš failą
char skaitymo buferis [ 65536 ] ;
rapidjson::FileReadStream yra ( fp, skaitymo buferis,
dydis ( skaitymo buferis ) ) ;

// Išanalizuoti JSON duomenis
// naudojant dokumento objektą
rapidjson::Document d;
d.ParseStream ( yra ) ;

// Uždaryk failą
fclose ( fp ) ;

// Pasiekite duomenis in JSON dokumentas
std::cout << d [ 'Vardas' ] .GetString ( ) << std::endl;
std::cout << d [ 'amžius' ] .Tonsuotas ( ) << std::endl;

grąžinti 0 ;
}


Funkcija fopen() naudojama failui atidaryti. Antraštės failas <<#include “rapidjson/filereadstream.h”>> nuskaito failo duomenis eilutėje, kuri pavadinta json. Dokumento dokumentas sukurtas failo duomenims laikyti. Eilutė išanalizuojama ir patikrinamos jos klaidos, jei randama klaidų, ji grąžina klaidą, priešingu atveju dokumentas naudojamas JSON duomenims pasiekti.





Pavyzdys, kaip įrašyti duomenis į JSON failą C++

Rapidjson biblioteka gali būti naudojama duomenims įrašyti į JSON failus, sukuriant dokumentų klasę. Tai yra kodo pavyzdys, skirtas įrašyti duomenis į JSON failą C++:



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

naudojant vardų erdvę rapidjson;

tarp pagrindinis ( )
{
// Skaityti JSON failą
FAILAS * fp
= fopen ( 'example.json' , 'rb' ) ;
char skaitymo buferis [ 65536 ] ;
„FileReadStream“ yra ( fp, skaitymo buferis, dydis ( skaitymo buferis ) ) ;
d dokumentas;
d.ParseStream ( yra ) ;
fclose ( fp ) ;


Vertė & s = d [ 'Vardas' ] ;
s.SetString ( 'Simonas' , d.GetAllocator ( ) ) ;

// Parašykite JSON failą
FAILAS * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
„FileWriteStream“ operacinė sistema ( fp2, rašymo buferis,
dydis ( rašyti buferį ) ) ;
Rašytojas < FileWriteStream > rašytojas ( tu ) ;
d.Priimti ( rašytojas ) ;
fclose ( fp2 ) ;

grąžinti 0 ;
}


Ši programa naudoja standartinius antraštės failus, kad įtrauktų rapidjson. Dokumento objektas turi JSON failo duomenis. Prie JSON objekto pridedamas nario vardas ir amžius. Sukuriamas išvesties failo srautas ir paruošiamas duomenims įrašyti į failą.


Vardas ir amžius įrašomi faile ir rodomi išvesties terminale.

Išvada

JSON yra duomenų formatas, leidžiantis sumažinti perduodamų duomenų dydį ir pagerinti duomenų perdavimo efektyvumą bei apdorojimą. Norint skaityti ir rašyti JSON duomenis naudojant rapidjson, naudojama rapidjson::Document klasė. Ši klasė suteikia aukšto lygio API JSON duomenims iš failo generuoti ir analizuoti, taip pat leidžia manipuliuoti duomenimis.