cocos2d-xでJSONを使う
cocos2d-xはあんまり関係ないですが、C++でJSONを扱うライブラリ picojson の使い方。
まとまった設定なんかを扱うのに使いやすそうです。
使用準備
https://raw.github.com/kazuho/picojson/master/picojson.h からファイルをコピーしてきて Classes の下に "picojson.h" として保存する。
使用例
// picojsonの読み込み #include "picojson.h" // JSON文字列の宣言 const char* json ="" "{" "\"bool1\":true," "\"double1\":3.14," "\"string1\":\"String\"," "\"array1\":[1,2,3,4,5]," "\"object1\":{\"foo\":1.1,\"bar\":2.2}" "}"; // JSONの読み込み picojson::value v; std::string err; picojson::parse(v, json, json + strlen(json), &err); if (err.empty()) { // 一番外側のobjectの取得 picojson::object& o = v.get<picojson::object>(); // bool値の取得 bool b1 = o["bool1"].get<bool>(); // double値の取得 double d1 = o["double1"].get<double>(); // string値の取得 std::string& s1 = o["string1"].get<std::string>(); // array値の取得 picojson::array& a1 = o["array1"].get<picojson::array>(); // arrayの中の値をループで取得 for (picojson::array::iterator i = a1.begin(); i != a1.end(); i++) { double d2 = i->get<double>(); } // object値の取得 picojson::object& o1 = o["object1"].get<picojson::object>(); // objectの値を取得 double d3 = o1["foo"].get<double>(); double d4 = o1["bar"].get<double>(); }