俺でもわかるPicojsonの使い方
PicojsonはJson形式を解析するライブラリです
PicojsonをGithubから取ってくる
Kazuhoさんに感謝
github.com
Picojsonはヘッダーオンリーなので
picojson.hだけで機能します
json形式のデータを用意する
# data.json { "Player": { "Name": "Yanai" } }
Picojsonを使ってデータを取得
#include <iostream> // std::cout #include <fstream> // std::ifstream #include <cassert> // std::assert #include "picojson.h" int main() { // ファイルを読み込むための変数 std::ifstream fs; // ファイルを読み込む fs.open("data.json", std::ios::binary); // 読み込みチェック // fs変数にデータがなければエラー assert(fs); // Picojsonへ読み込む picojson::value val; fs >> val; // fs変数はもう使わないので閉鎖 fs.close(); // Playerの名前を取得 std::string name = val.get<picojson::object>() ["Player"].get<picojson::object>() ["NAME"].get<std::string>(); }
picojson::objectはmapで生成されているので
[]でKeyを指定してそれに対になっている値を取得します
\\* 注意点
Picojsonではdouble型での数値の取得しか対応していません
コードからjson形式のデータを生成する方法
picojson::object obj; // データの追加 obj.emplace(std::make_pair("Name", "Yanai")); // 文字列にするためにvalueを使用 picojson::value val(obj); // return std::string val.serialize(); std::cout << val.serialize(); // {"Name": "Yanai"}