Cum să citiți și să scrieți fișiere JSON în C++

Cum Sa Cititi Si Sa Scrieti Fisiere Json In C



C++ este un limbaj versatil care are un set de biblioteci pentru a trata datele JSON. JavaScript Object Notation (JSON) este un format pentru schimbul de date care este ușor de scris și citit de oameni, iar mașinile pot genera și analiza cu ușurință. Este folosit pentru transmiterea de date între aplicații web și servere, și pentru stocarea datelor, precum și pentru configurarea fișierelor.

Cum să citiți și să scrieți fișiere JSON în C++

JSON este un format de date care este o modalitate preferată de stocare și transfer de date structurate pe web. Este ușor, ceea ce face transferul de date ușor și are ca rezultat îmbunătățirea eficienței și procesării transferului de date. În C++ rapidjson este o bibliotecă care are funcții pentru a analiza și genera JSON. Această bibliotecă nu numai că permite citirea și scrierea datelor JSON, dar permite și manipularea și validarea obiectelor JSON. De asemenea, acceptă funcții pentru gestionarea seturilor mari de date JSON într-un mod de streaming.







Pentru a citi și scrie datele JSON folosind rapidjson, se folosește clasa rapidjson::Document. Această clasă oferă un API de nivel înalt pentru generarea și analizarea datelor JSON dintr-un fișier și face posibilă și manipularea datelor.



Exemplu de citire a datelor din fișierul JSON în C++

Acesta este un exemplu de cod pentru a citi date dintr-un fișier JSON în C++ folosind biblioteca rapidjson:



#include „rapidjson/document.h”
#include „rapidjson/stringbuffer.h”
#include „rapidjson/filereadstream.h”
#include
#include

folosirea spațiului de nume rapidjson;

int principal ( )
{
// Deschide fişier pentru citind
FIŞIER * fp = fopen ( „example.json” , 'r' ) ;

// Utilizați un FileReadStream pentru a
// citit datele din fişier
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream este ( fp, readBuffer,
dimensiunea ( readBuffer ) ) ;

// Analizați datele JSON
// folosind un obiect Document
rapidjson::Document d;
d.ParseStream ( este ) ;

// Inchide fişier
fclose ( fp ) ;

// Accesați datele în documentul JSON
std::cout << d [ 'Nume' ] .GetString ( ) << std::endl;
std::cout << d [ 'Vârstă' ] .Nuanțat ( ) << std::endl;

întoarcere 0 ;
}


Funcția fopen() este folosită pentru a deschide fișierul. Fișierul antet <<#include „rapidjson/filereadstream.h”>> citește datele fișierului într-un șir care este numit json. Documentul document este creat pentru a deține datele fișierului. Șirul este analizat, iar erorile sale sunt verificate, dacă se găsesc erori, returnează o eroare, altfel Documentul este folosit pentru a accesa datele JSON.





Exemplu de scriere a datelor în fișierul JSON în C++

Biblioteca rapidjson poate fi folosită pentru a scrie datele în fișiere JSON prin crearea unei clase Document. Acesta este un exemplu de cod pentru a scrie date în fișierul JSON în C++:



#include „rapidjson/document.h”
#include „rapidjson/filereadstream.h”
#include „rapidjson/filewritestream.h”
#include „rapidjson/writer.h”

folosirea spațiului de nume rapidjson;

int principal ( )
{
// Citiți JSON fişier
FIŞIER * fp
= fopen ( „example.json” , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream este ( fp, readBuffer, sizeof ( readBuffer ) ) ;
document d;
d.ParseStream ( este ) ;
fclose ( fp ) ;


Valoare & s = d [ 'Nume' ] ;
s.SetString ( 'Simon' , d.GetAllocator ( ) ) ;

// Scrieți JSON fişier
FIŞIER * fp2 = fopen ( „example_modified.json” ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
FileWriteStream os ( fp2, writeBuffer,
dimensiunea ( writeBuffer ) ) ;
Scriitor < FileWriteStream > scriitor ( tu ) ;
d.Accept ( scriitor ) ;
fclose ( fp2 ) ;

întoarcere 0 ;
}


Acest program folosește fișierele de antet standard pentru a include rapidjson. Obiectul Document deține datele fișierului JSON. Numele și vârsta membrului sunt adăugate la obiectul JSON. Un flux de fișiere de ieșire este creat și pregătit pentru scrierea datelor în fișier.


Numele și vârsta sunt ambele scrise în fișier și afișate pe terminalul de ieșire.

Concluzie

JSON este un format de date care face posibilă reducerea dimensiunii datelor pentru transfer și are ca rezultat îmbunătățirea eficienței și procesării transferului de date. Pentru a citi și scrie datele JSON folosind rapidjson, se folosește clasa rapidjson::Document. Această clasă oferă un API de nivel înalt pentru generarea și analizarea datelor JSON dintr-un fișier și face posibilă și manipularea datelor.