JSON-bestanden lezen en schrijven in C++

Json Bestanden Lezen En Schrijven In C



C++ is een veelzijdige taal die een reeks bibliotheken heeft om met JSON-gegevens om te gaan. JavaScript Object Notation (JSON) is een formaat voor gegevensuitwisseling dat door mensen gemakkelijk kan worden geschreven en gelezen en dat machines gemakkelijk kunnen genereren en parseren. Het wordt gebruikt voor de overdracht van gegevens tussen webapplicaties en servers, voor het opslaan van gegevens en voor het configureren van bestanden.

JSON-bestanden lezen en schrijven in C++

JSON is een gegevensformaat dat de voorkeur geniet voor het opslaan en overdragen van gestructureerde gegevens op internet. Het is lichtgewicht, wat de overdracht van gegevens eenvoudig maakt en resulteert in een verbeterde efficiëntie en verwerking van gegevensoverdracht. In C++ is rapidjson een bibliotheek met functies voor het parseren en genereren van de JSON. Deze bibliotheek maakt het niet alleen mogelijk om de JSON-gegevens te lezen en te schrijven, maar maakt ook de manipulatie en validatie van JSON-objecten mogelijk. Het ondersteunt ook functies voor het streaming van grote datasets van JSON.







Om de JSON-gegevens te lezen en te schrijven met behulp van rapidjson, wordt de klasse rapidjson::Document gebruikt. Deze klasse biedt een API op hoog niveau voor het genereren en parseren van JSON-gegevens uit een bestand en maakt ook manipulatie van gegevens mogelijk.



Voorbeeld om gegevens uit een JSON-bestand in C++ te lezen

Dit is een voorbeeldcode om gegevens uit een JSON-bestand in C++ te lezen met behulp van de rapidjson-bibliotheek:



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

naamruimte rapidjson gebruiken;

int. hoofd ( )
{
// Open de bestand voor lezing
BESTAND * fp = fopen ( 'voorbeeld.json' , 'R' ) ;

// Gebruik een FileReadStream om
// lezen de gegevens uit de bestand
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream is ( fp, leesBuffer,
De grootte van ( leesBuffer ) ) ;

// Parseer de JSON-gegevens
// met behulp van een Document-object
rapidjson::Document d;
d.ParseStream ( is ) ;

// Sluit de bestand
fsluiten ( fp ) ;

// Toegang tot de gegevens in het JSON-document
std::uit << D [ 'Naam' ] .GetString ( ) << std::endl;
std::uit << D [ 'Leeftijd' ] .GetInt ( ) << std::endl;

opbrengst 0 ;
}


De functie fopen() wordt gebruikt om het bestand te openen. Het headerbestand <<#include “rapidjson/filereadstream.h”>> leest de gegevens van het bestand in een string met de naam json. Het documentdocument wordt gemaakt om de gegevens van het bestand te bevatten. De string wordt geparseerd en de fouten ervan worden gecontroleerd. Als er fouten worden gevonden, wordt er een fout geretourneerd, anders wordt het document gebruikt om toegang te krijgen tot de gegevens van de JSON.





Voorbeeld om gegevens naar JSON-bestand in C++ te schrijven

De rapidjson-bibliotheek kan worden gebruikt om de gegevens in JSON-bestanden te schrijven door een Document-klasse te maken. Dit is een voorbeeldcode om gegevens naar het JSON-bestand in C++ te schrijven:



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

naamruimte rapidjson gebruiken;

int. hoofd ( )
{
// Lees JSON bestand
BESTAND * fp
= fopen ( 'voorbeeld.json' , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream is ( fp, readBuffer, groottevan ( leesBuffer ) ) ;
Document d;
d.ParseStream ( is ) ;
fsluiten ( fp ) ;


Waarde & s = d [ 'Naam' ] ;
s.SetString ( 'Simon' , d.GetAllocator ( ) ) ;

// Schrijf JSON bestand
BESTAND * fp2 = fopen ( 'voorbeeld_gemodificeerd.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
FileWriteStream-besturingssysteem ( fp2, schrijfbuffer,
De grootte van ( schrijfBuffer ) ) ;
auteur < FileWriteStream > auteur ( Jij ) ;
d.Accepteren ( auteur ) ;
fsluiten ( fp2 ) ;

opbrengst 0 ;
}


Dit programma gebruikt de standaard headerbestanden om de rapidjson. Het Document-object bevat de gegevens van het JSON-bestand. De naam en leeftijd van het lid worden toegevoegd aan het JSON-object. Er wordt een uitvoerbestandsstroom gemaakt en voorbereid om de gegevens naar het bestand te schrijven.


Naam en leeftijd worden beide in het bestand geschreven en weergegeven op de uitvoerterminal.

Conclusie

JSON is een dataformaat dat het mogelijk maakt de gegevensgrootte voor de overdracht te verkleinen en resulteert in een verbeterde efficiëntie en verwerking van de gegevensoverdracht. Om de JSON-gegevens te lezen en te schrijven met behulp van rapidjson, wordt de klasse rapidjson::Document gebruikt. Deze klasse biedt een API op hoog niveau voor het genereren en parseren van JSON-gegevens uit een bestand en maakt ook manipulatie van gegevens mogelijk.