Как да четете и записвате JSON файлове в C++

Kak Da Cetete I Zapisvate Json Fajlove V C



C++ е многофункционален език, който има набор от библиотеки за работа с JSON данни. JavaScript Object Notation (JSON) е формат за обмен на данни, който е лесен за писане и четене от хората, а машините могат лесно да генерират и анализират. Използва се за предаване на данни между уеб приложения и сървъри, както и за съхранение на данни, както и за конфигуриране на файлове.

Как да четете и записвате JSON файлове в C++

JSON е формат на данни, който е предпочитан начин за съхранение и прехвърляне на структурирани данни в мрежата. Той е лек, което прави трансфера на данни лесен и води до подобрена ефективност и обработка на трансфера на данни. В C++ rapidjson е библиотека, която има функции за анализиране и генериране на JSON. Тази библиотека не само позволява да се четат и записват JSON данни, но също така позволява манипулиране и валидиране на обекти на JSON. Той също така поддържа функции за обработка на големи набори от данни на JSON по поточен начин.







За четене и запис на JSON данни с помощта на rapidjson се използва класът rapidjson::Document. Този клас предоставя API на високо ниво за генериране и анализиране на JSON данни от файл и прави възможно манипулирането на данни.



Пример за четене на данни от JSON файл в C++

Това е примерен код за четене на данни от JSON файл в C++ с помощта на библиотеката rapidjson:



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

използване на пространство от имена rapidjson;

int main ( )
{
// Отвори файл за четене
ФАЙЛ * fp = fopen ( 'example.json' , 'р' ) ;

// Използвайте FileReadStream за
// Прочети данните от файл
char readBuffer [ 65536 ] ;
rapidjson::FileReadStream е ( fp, readBuffer,
размер на ( readBuffer ) ) ;

// Анализирайте JSON данните
// с помощта на обект Document
rapidjson::Документ d;
d.ParseStream ( е ) ;

// Затвори файл
fclose ( fp ) ;

// Достъп до данните в документа JSON
std::cout << д [ 'Име' ] .GetString ( ) << std::endl;
std::cout << д [ 'възраст' ] .Тонирани ( ) << std::endl;

връщане 0 ;
}


Функцията fopen() се използва за отваряне на файла. Заглавният файл <<#include “rapidjson/filereadstream.h”>> чете данните от файла в низ, който се нарича json. Документът на документа е създаден, за да съхранява данните от файла. Низът се анализира и неговите грешки се проверяват, ако се открият грешки, той връща грешка, в противен случай документът се използва за достъп до данните на JSON.





Пример за запис на данни в JSON файл в C++

Библиотеката rapidjson може да се използва за запис на данните в JSON файлове чрез създаване на клас Document. Това е примерен код за запис на данни в JSON файла в C++:



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

използване на пространство от имена rapidjson;

int main ( )
{
// Прочетете JSON файл
ФАЙЛ * fp
= fopen ( 'example.json' , 'rb' ) ;
char readBuffer [ 65536 ] ;
FileReadStream е ( fp, readBuffer, sizeof ( readBuffer ) ) ;
Документ d;
d.ParseStream ( е ) ;
fclose ( fp ) ;


Стойност и s = d [ 'Име' ] ;
s.SetString ( 'Саймън' , d.GetAllocator ( ) ) ;

// Напишете JSON файл
ФАЙЛ * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
char writeBuffer [ 65536 ] ;
FileWriteStream os ( fp2, writeBuffer,
размер на ( writeBuffer ) ) ;
Писател < FileWriteStream > писател ( Вие ) ;
d.Приеми ( писател ) ;
fclose ( fp2 ) ;

връщане 0 ;
}


Тази програма използва стандартните заглавни файлове, за да включи rapidjson. Обектът Document съдържа данните от JSON файла. Името и възрастта на члена се добавят към JSON обекта. Създава се поток от изходен файл и се подготвя за запис на данните във файла.


Името и възрастта се записват във файла и се показват на изходния терминал.

Заключение

JSON е формат за данни, който прави възможно намаляването на размера на данните за прехвърляне и води до подобрена ефективност и обработка на прехвърлянето на данни. За четене и запис на JSON данни с помощта на rapidjson се използва класът rapidjson::Document. Този клас предоставя API на високо ниво за генериране и анализиране на JSON данни от файл и прави възможно манипулирането на данни.