C++でJsonは学生時代にゲームを作成しており、その際にデータを外部ファイルに保存するのに使っていました。C++だとJsonの種類がPicjsonやJsonCppといった感じで数ある中からrapidJsonを使っています
そもそもrapidJsonとはなんぞや
rapidJsonの特徴としてはいくつかありますが特に私が気にいっている点が3つあります。ゲームを作る上で処理速度やメモリ、日本語対応は大事です
- rapidという名前の通り処理が速い
- 省メモリで使用できる
- UTF-8、UTF-16、UTF-32 のサポートがあり、日本語を含む JSON も問題なく扱える
rapidJsonをインストールする
Nugetから取得する
C++のプロジェクト上にある「Nugetのパッケージの管理」からrapidJsonをインストールします
追加の依存インクルードに追加する
インストールしただけでは使えないので、使えるように設定に追加します
実際にrapidJsonを呼び出してみる
これでrapidJsonを呼び出すことができるようになったので、実際に使ってみます
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
const char* json = "{\"project\":\"rapidjson\",\"stars\":10, \"名前\":\"テスト太郎\"}";
rapidjson::Document d;
d.Parse(json);
// starsの値に+1する
rapidjson::Value& s = d["stars"];
s.SetInt(s.GetInt() + 1);
// 文字列化する
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
d.Accept(writer);
// 内容を出力する
// {"project":"rapidjson","stars":11,"名前":"テスト太郎"} と出力される
std::cout << buffer.GetString() << std::endl;