C++ で JSON ファイルを読み書きする方法

C De Json Fairuwo Dumi Shukisuru Fang Fa



C++ は、JSON データを処理するための一連のライブラリを備えた多用途言語です。 JavaScript Object Notation (JSON) は、人間にとって書き込みと読み取りが容易で、機械による生成と解析が容易なデータ交換用の形式です。 Web アプリケーションとサーバー間のデータの送信、データの保存、ファイルの構成に使用されます。

C++ で JSON ファイルを読み書きする方法

JSON は、Web 上で構造化データを保存および転送する際に推奨されるデータ形式です。軽量なのでデータ転送が容易になり、データ転送の効率と処理が向上します。 C++ では、rapidjson は JSON を解析して生成する関数を備えたライブラリです。このライブラリを使用すると、JSON データの読み取りと書き込みが可能になるだけでなく、JSON のオブジェクトの操作と検証も可能になります。また、JSON の大規模なデータセットをストリーミング形式で処理するための関数もサポートしています。







Rapidjson を使用して JSON データを読み書きするには、rapidjson::Document クラスを使用します。このクラスは、ファイルから JSON データを生成および解析するための高レベル API を提供し、データの操作も可能にします。



C++ で JSON ファイルからデータを読み取る例

これは、rapidjson ライブラリを使用して C++ で JSON ファイルからデータを読み取るコード例です。



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

名前空間rapidjsonを使用します。

整数メイン ( )
{
// を開きます ファイル のために 読む
ファイル * fp = fopen ( 「例.json」 「r」 ;

// FileReadStream を使用して、
// 読む からのデータ ファイル
文字読み取りバッファ [ 65536 ;
Rapidjson::FileReadStream は ( fp、読み取りバッファ、
のサイズ ( 読み取りバッファ ;

// JSONデータを解析する
// Document オブジェクトを使用する
Rapidjson::ドキュメント d;
d.ParseStream ( ;

// それを閉めて ファイル
f閉じる ( FP ) ;

// データにアクセスする JSONドキュメント
std::cout << d [ '名前' .GetString ( ) << std::endl;
std::cout << d [ '年' ] .着色された ( << std::endl;

戻る 0 ;
}


ファイルを開くには fopen() 関数が使用されます。ヘッダー ファイル <<#include “rapidjson/filereadstream.h”>> は、ファイルのデータを json という名前の文字列で読み取ります。ドキュメント doc は、ファイルのデータを保持するために作成されます。文字列が解析され、そのエラーがチェックされます。エラーが見つかった場合はエラーが返され、それ以外の場合は、Document が JSON のデータにアクセスするために使用されます。





C++ で JSON ファイルにデータを書き込む例

Rapidjson ライブラリを使用して、Document クラスを作成することで JSON ファイルにデータを書き込むことができます。これは、C++ で JSON ファイルにデータを書き込むコード例です。



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

名前空間rapidjsonを使用します。

整数メイン (
{
// JSONを読む ファイル
ファイル * FP
= fopen ( 「例.json」 「rb」 ) ;
文字読み取りバッファ [ 65536 ;
FileReadStream は ( fp、readBuffer、sizeof ( 読み取りバッファ ) ) ;
文書d;
d.ParseStream ( ) ;
f閉じる ( FP ) ;


価値 & s = d [ '名前' ;
s.SetString ( 「サイモン」 、d.GetAllocator ( ;

// JSONを書く ファイル
ファイル * fp2 = fopen ( 「example_modified.json」
「わー」 ;
文字書き込みバッファ [ 65536 ] ;
ファイル書き込みストリーム OS ( fp2、書き込みバッファ、
のサイズ ( 書き込みバッファ ) ) ;
ライター < ファイル書き込みストリーム > ライター ( あなた ) ;
d.承諾する ( ライター ) ;
f閉じる ( FP2 ) ;

戻る 0 ;
}


このプログラムは、標準ヘッダー ファイルを使用して、rapidjson をインクルードします。 Document オブジェクトは、JSON ファイルのデータを保持します。メンバーの名前と年齢が JSON オブジェクトに追加されます。出力ファイル ストリームが作成され、データをファイルに書き込むための準備が行われます。


名前と年齢の両方がファイルに書き込まれ、出力端末に表示されます。

結論

JSON は、転送データのサイズを削減でき、データ転送の効率と処理を向上させるデータ形式です。 Rapidjson を使用して JSON データを読み書きするには、rapidjson::Document クラスを使用します。このクラスは、ファイルから JSON データを生成および解析するための高レベル API を提供し、データの操作も可能にします。