Kuinka lukea ja kirjoittaa JSON-tiedostoja C++:ssa

Kuinka Lukea Ja Kirjoittaa Json Tiedostoja C Ssa



C++ on monipuolinen kieli, jossa on joukko kirjastoja käsittelemään JSON-tietoja. JavaScript Object Notation (JSON) on tiedonsiirron muoto, jota ihmisten on helppo kirjoittaa ja lukea ja koneet voivat helposti luoda ja jäsentää. Sitä käytetään tiedonsiirtoon verkkosovellusten ja palvelimien välillä sekä tietojen tallentamiseen sekä tiedostojen konfigurointiin.

Kuinka lukea ja kirjoittaa JSON-tiedostoja C++:ssa

JSON on tietomuoto, joka on suositeltu tapa tallentaa ja siirtää strukturoitua dataa verkossa. Se on kevyt, mikä tekee tiedonsiirrosta helppoa ja parantaa tiedonsiirron tehokkuutta ja käsittelyä. C++:ssa rapidjson on kirjasto, jossa on toimintoja JSONin jäsentämiseen ja luomiseen. Tämä kirjasto ei mahdollista vain JSON-tietojen lukemista ja kirjoittamista, vaan mahdollistaa myös JSON-objektien käsittelyn ja validoinnin. Se tukee myös toimintoja suurten JSON-tietosarjojen käsittelyyn suoratoistona.







JSON-tietojen lukemiseen ja kirjoittamiseen rapidjsonilla käytetään rapidjson::Document-luokkaa. Tämä luokka tarjoaa korkean tason API:n JSON-tietojen luomiseen ja jäsentämiseen tiedostosta ja mahdollistaa myös tietojen käsittelyn.



Esimerkki tietojen lukemisesta JSON-tiedostosta C++:ssa

Tämä on esimerkkikoodi, jolla voit lukea tietoja JSON-tiedostosta C++:ssa rapidjson-kirjaston avulla:



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

käyttäen nimiavaruutta rapidjson;

int main ( )
{
// Avaa tiedosto varten lukeminen
TIEDOSTO * fp = fopen ( 'esimerkki.json' , 'r' ) ;

// Käytä FileReadStreamia
// lukea tiedot kohteesta tiedosto
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream on ( fp, readBuffer,
koko ( readBuffer ) ) ;

// Jäsennä JSON-tiedot
// käyttämällä asiakirjaobjektia
rapidjson::Dokumentti d;
d.ParseStream ( On ) ;

// Sulje tiedosto
fclose ( fp ) ;

// Käytä tietoja sisään JSON-dokumentti
std::cout << d [ 'Nimi' ] .GetString ( ) << std::endl;
std::cout << d [ 'Ikä' ] .Sävytetty ( ) << std::endl;

palata 0 ;
}


Fopen()-funktiota käytetään tiedoston avaamiseen. Otsikkotiedosto <<#include “rapidjson/filereadstream.h”>> lukee tiedoston tiedot merkkijonossa, jonka nimi on json. Asiakirjadokumentti luodaan säilyttämään tiedoston tiedot. Merkkijono jäsennetään ja sen virheet tarkistetaan, jos virheitä löytyy, se palauttaa virheen, muuten dokumenttia käytetään JSON-tietojen käsittelyyn.





Esimerkki tietojen kirjoittamisesta JSON-tiedostoon C++:ssa

Rapidjson-kirjastoa voidaan käyttää tietojen kirjoittamiseen JSON-tiedostoihin luomalla asiakirjaluokka. Tämä on esimerkkikoodi tietojen kirjoittamiseksi JSON-tiedostoon C++:ssa:



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

käyttäen nimiavaruutta rapidjson;

int main ( )
{
// Lue JSON tiedosto
TIEDOSTO * fp
= fopen ( 'esimerkki.json' , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream on ( fp, readBuffer, sizeof ( readBuffer ) ) ;
Asiakirja d;
d.ParseStream ( On ) ;
fclose ( fp ) ;


Arvo & s = d [ 'Nimi' ] ;
s.SetString ( 'Simon' , d.GetAllocator ( ) ) ;

// Kirjoita JSON tiedosto
TIEDOSTO * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
FileWriteStream os ( fp2, writeBuffer,
koko ( writeBuffer ) ) ;
Kirjailija < FileWriteStream > kirjailija ( sinä ) ;
d. Hyväksy ( kirjailija ) ;
fclose ( fp2 ) ;

palata 0 ;
}


Tämä ohjelma käyttää tavallisia otsikkotiedostoja sisällyttääkseen rapidjsonin. Asiakirja-objekti sisältää JSON-tiedoston tiedot. Jäsenen nimi ja ikä lisätään JSON-objektiin. Tulostetiedostovirta luodaan ja valmistetaan tietojen kirjoittamista varten tiedostoon.


Sekä nimi että ikä kirjoitetaan tiedostoon ja näytetään lähtöpäätteessä.

Johtopäätös

JSON on tietomuoto, jonka avulla voidaan pienentää siirrettävän tiedon kokoa ja parantaa tiedonsiirron tehokkuutta ja käsittelyä. JSON-tietojen lukemiseen ja kirjoittamiseen rapidjsonilla käytetään rapidjson::Document-luokkaa. Tämä luokka tarjoaa korkean tason API:n JSON-tietojen luomiseen ja jäsentämiseen tiedostosta ja mahdollistaa myös tietojen käsittelyn.