Paano Magbasa at Sumulat ng mga JSON Files sa C++

Paano Magbasa At Sumulat Ng Mga Json Files Sa C



Ang C++ ay isang maraming nalalaman na wika na mayroong isang hanay ng mga aklatan upang harapin ang data ng JSON. Ang JavaScript Object Notation (JSON) ay isang format para sa pagpapalitan ng data na madaling magsulat at magbasa ng mga tao at madaling mabuo at ma-parse ng mga machine. Ginagamit ito para sa paghahatid ng data sa pagitan ng mga web application at server, at para sa pag-iimbak ng data, pati na rin ang pagsasaayos ng mga file.

Paano Magbasa at Sumulat ng mga JSON File sa C++

Ang JSON ay isang format ng data na isang gustong paraan ng pag-iimbak at paglilipat ng structured data sa web. Ito ay magaan, na ginagawang madali ang paglipat ng data at nagreresulta sa pinabuting kahusayan at pagproseso ng paglilipat ng data. Sa C++ rapidjson ay isang library na may mga function upang i-parse at bumuo ng JSON. Ang library na ito ay hindi lamang nagbibigay-daan sa isa na basahin at isulat ang data ng JSON ngunit pinapayagan din ang pagmamanipula at pagpapatunay ng mga bagay ng JSON. Sinusuportahan din nito ang mga function para sa paghawak ng malalaking dataset ng JSON sa isang streaming na paraan.







Upang basahin at isulat ang data ng JSON gamit ang rapidjson, ginagamit ang rapidjson::Document class. Nagbibigay ang klase na ito ng mataas na antas ng API para sa pagbuo at pag-parse ng data ng JSON mula sa isang file at ginagawang posible rin ang pagmamanipula ng data.



Halimbawa sa Pagbasa ng Data mula sa JSON File sa C++

Ito ay isang halimbawang code para magbasa ng data mula sa isang JSON file sa C++ gamit ang rapidjson library:



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

gamit ang namespace rapidjson;

int pangunahing ( )
{
// Buksan ang file para sa pagbabasa
FILE * fp = fopen ( 'example.json' , 'r' ) ;

// Gumamit ng FileReadStream upang
// basahin ang datos mula sa file
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream ay ( fp, readBuffer,
sukat ng ( readBuffer ) ) ;

// I-parse ang data ng JSON
// gamit ang isang bagay na Dokumento
rapidjson::Dokumento d;
d.ParseStream ( ay ) ;

// Isara ang file
fclose ( fp ) ;

// I-access ang data sa ang dokumento ng JSON
std::cout << d [ 'Pangalan' ] .GetString ( ) << std::endl;
std::cout << d [ 'Edad' ] .Makulay ( ) << std::endl;

bumalik 0 ;
}


Ang fopen() function ay ginagamit upang buksan ang file. Binabasa ng header file na <<#include “rapidjson/filereadstream.h”>> ang data ng file sa isang string na pinangalanan bilang json. Ang dokumentong doc ay nilikha upang hawakan ang data ng file. Na-parse ang string, at sinusuri ang mga error nito, kung may makikitang mga error, magbabalik ito ng error kung hindi, gagamitin ang Dokumento para ma-access ang data ng JSON.





Halimbawa sa Pagsulat ng Data sa JSON File sa C++

Maaaring gamitin ang rapidjson library para isulat ang data sa mga JSON file sa pamamagitan ng paggawa ng klase ng Dokumento. Ito ay isang halimbawang code para magsulat ng data sa JSON file sa C++:



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

gamit ang namespace rapidjson;

int pangunahing ( )
{
// Basahin ang JSON file
FILE * fp
= fopen ( 'example.json' , 'rb' ) ;
char readBuffer [ 65536 ] ;
Ang FileReadStream ay ( fp, readBuffer, sizeof ( readBuffer ) ) ;
Dokumento d;
d.ParseStream ( ay ) ;
fclose ( fp ) ;


Halaga at s = d [ 'Pangalan' ] ;
s.SetString ( 'Simon' , d.GetAllocator ( ) ) ;

// Sumulat ng JSON file
FILE * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
FileWriteStream os ( fp2, writeBuffer,
sukat ng ( writeBuffer ) ) ;
Manunulat < FileWriteStream > manunulat ( ikaw ) ;
d.Tanggapin ( manunulat ) ;
fclose ( fp2 ) ;

bumalik 0 ;
}


Ginagamit ng program na ito ang karaniwang mga file ng header upang isama ang rapidjson. Ang Document object ang nagtataglay ng data ng JSON file. Ang pangalan at edad ng miyembro ay idinaragdag sa JSON object. Ang isang output file stream ay nilikha at inihanda para sa pagsulat ng data sa file.


Parehong nakasulat ang pangalan at edad sa file at ipinapakita sa output terminal.

Konklusyon

Ang JSON ay isang format ng data na ginagawang posible na bawasan ang laki ng data para sa paglilipat at nagreresulta sa pinahusay na kahusayan at pagproseso ng paglilipat ng data. Upang basahin at isulat ang data ng JSON gamit ang rapidjson, ginagamit ang rapidjson::Document class. Nagbibigay ang klase na ito ng mataas na antas ng API para sa pagbuo at pag-parse ng data ng JSON mula sa isang file at ginagawang posible rin ang pagmamanipula ng data.