Lab

Cocos2d-x v3:JSONを扱う

 Tag :  Published : 2014-7-17

Pocket

Json_create、Json_getInt、Json_getFloat、Json_getString、Json_getItemを使用します。
JSONを扱います。

JSONを扱う準備

以下をincludeします。

    #include "spine/Json.h"
    

JSONの作成

JSONを作成します。

    //JSONの内容(\はエスケープ):
    //{"key1":1, "key2":123.45, "key3":"string", "key4":{"value1":100, "value2":"a"}}
    Json* json = Json_create("{\"key1\":1, \"key2\":123.45, \"key3\":\"string\", \"key4\":{\"value1\":100, \"value2\":\"a\"}}");
    

int型のパース

“key1″の値、1を取り出してみます。

    //0は、"key1"が存在しなかった場合に代入される値。
    int i = Json_getInt(json, "key1", 0);
    

float型のパース

“key2″の値、123.45を取り出してみます。

    //0は、"key2"が存在しなかった場合に代入される値。
    float f = Json_getFloat(json, "key2", 0);
    

string型のパース

“key3″の値、”string”を取り出してみます。

    //""(空)は、"key3"が存在しなかった場合に代入される値。
    std::string str = Json_getString(json, "key3", "");
    

オブジェクト型のパース

“key4″の値を取り出してみます。

    //"key4"の中身を取り出す
    Json* j = Json_getItem(json, "key4");

    //"key4"の"value1"のパース
    int ji = Json_getInt(j, "value1", 0); //jiの値は100

    //"key4"の"value2"のパース
    std::string js = Json_getString(j, "value2", ""); //jsの値はa
    

要素数を数える

JSONの中にいくつ要素があるか調べます。

    int num = json->size;
    log("全部で%d個です", num);  //全部で4個です