まぐらぼ

Unity/Android、Microsoft系のWPFをやってます。

JSONのエンコードとデコード

JSONエンコードとデコードのGistです。Twitterサンプルを作成したときに復習したので記憶が定着する事を願ってブログに記します。なおクラスのシリアライズとは別物です。

これはMETROスタンダードの Windows.Data.JsonAPIを使っています。DynamicJsonはStoreAppに未対応のようです。METRO用にNewtonsoft.Json があるみたいですが使ったことはありません。

void decode_json() 
{
    string jsonText = @"[{""id"": 2,""title"": ""aaa""},{""id"": 1,""title"": ""bbb""}]";
    var array = Windows.Data.Json.JsonArray.Parse(jsonText);
    foreach (var item in array)
    {
        if (item.ValueType != Windows.Data.Json.JsonValueType.Object)

            continue;
        }

        var obj = item.GetObject();

        var id = obj.GetNamedNumber("id");
        var title = obj.GetNamedString("title");
        Debug.WriteLine("{0}",id);
        //list.Add(string.Format("{0}: {1}", id, title));
    }
}
void encode_json() 
{
    JsonObject jobj = new JsonObject();
    jobj.SetNamedValue("id", JsonValue.CreateNumberValue(1));
    jobj.SetNamedValue("title", JsonValue.CreateStringValue("hoge"));
    string outdata = jobj.Stringify();
    Debug.WriteLine("{0}", outdata);
}