Kako čitati i pisati JSON datoteke u C++

Kako Citati I Pisati Json Datoteke U C



C++ je svestran jezik koji ima skup biblioteka za rad s JSON podacima. JavaScript Object Notation (JSON) je format za razmjenu podataka koji je ljudima jednostavan za pisanje i čitanje, a strojevi mogu lako generirati i analizirati. Služi za prijenos podataka između web aplikacija i poslužitelja te za pohranu podataka, kao i konfiguraciju datoteka.

Kako čitati i pisati JSON datoteke u C++

JSON je format podataka koji je preferirani način pohranjivanja i prijenosa strukturiranih podataka na webu. Lagan je, što olakšava prijenos podataka i rezultira poboljšanom učinkovitosti i obradom prijenosa podataka. U C++ rapidjson je biblioteka koja ima funkcije za analizu i generiranje JSON-a. Ova biblioteka ne samo da omogućuje čitanje i pisanje JSON podataka, već također omogućuje manipulaciju i provjeru valjanosti JSON objekata. Također podržava funkcije za rukovanje velikim skupovima podataka JSON na način strujanja.







Za čitanje i pisanje JSON podataka pomoću rapidjsona koristi se klasa rapidjson::Document. Ova klasa pruža API visoke razine za generiranje i raščlanjivanje JSON podataka iz datoteke te omogućuje i manipulaciju podacima.



Primjer čitanja podataka iz JSON datoteke u C++

Ovo je primjer koda za čitanje podataka iz JSON datoteke u C++ pomoću biblioteke rapidjson:



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

korištenje imenskog prostora rapidjson;

int glavni ( )
{
// Otvori datoteka za čitanje
DATOTEKA * fp = fopen ( 'example.json' , 'r' ) ;

// Koristite FileReadStream za
// čitati podaci iz datoteka
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream je ( fp, readBuffer,
veličina ( readBuffer ) ) ;

// Raščlanite JSON podatke
// pomoću objekta Document
rapidjson::Dokument d;
d.ParseStream ( je ) ;

// Zatvori datoteka
fclose ( fp ) ;

// Pristupite podacima u JSON dokument
std::cout << d [ 'Ime' ] .GetString ( ) << std::endl;
std::cout << d [ 'Dob' ] .Zatamnjeno ( ) << std::endl;

povratak 0 ;
}


Funkcija fopen() koristi se za otvaranje datoteke. Datoteka zaglavlja <<#include “rapidjson/filereadstream.h”>> čita podatke datoteke u nizu koji je nazvan json. Dokument doc stvoren je za čuvanje podataka datoteke. Niz se analizira i njegove pogreške se provjeravaju, ako se pronađu pogreške, vraća se pogreška, inače se dokument koristi za pristup podacima JSON-a.





Primjer pisanja podataka u JSON datoteku u C++

Knjižnica rapidjson može se koristiti za pisanje podataka u JSON datoteke stvaranjem klase dokumenta. Ovo je primjer koda za pisanje podataka u JSON datoteku u C++:



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

korištenje imenskog prostora rapidjson;

int glavni ( )
{
// Čitajte JSON datoteka
DATOTEKA * fp
= fopen ( 'example.json' , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream je ( fp, readBuffer, sizeof ( readBuffer ) ) ;
Dokument d;
d.ParseStream ( je ) ;
fclose ( fp ) ;


Vrijednost i s = d [ 'Ime' ] ;
s.SetString ( 'Simun' , d.GetAllocator ( ) ) ;

// Napišite JSON datoteka
DATOTEKA * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
FileWriteStream os ( fp2, writeBuffer,
veličina ( writeBuffer ) ) ;
Pisac < FileWriteStream > pisac ( vas ) ;
d. Prihvatiti ( pisac ) ;
fclose ( fp2 ) ;

povratak 0 ;
}


Ovaj program koristi standardne datoteke zaglavlja za uključivanje rapidjsona. Objekt Document sadrži podatke JSON datoteke. Ime i dob člana dodaje se JSON objektu. Tok izlazne datoteke se stvara i priprema za pisanje podataka u datoteku.


Ime i dob su zapisani u datoteci i prikazani na izlaznom terminalu.

Zaključak

JSON je podatkovni format koji omogućuje smanjenje veličine podataka za prijenos i rezultira poboljšanom učinkovitosti i obradom prijenosa podataka. Za čitanje i pisanje JSON podataka pomoću rapidjsona koristi se klasa rapidjson::Document. Ova klasa pruža API visoke razine za generiranje i raščlanjivanje JSON podataka iz datoteke te omogućuje i manipulaciju podacima.