酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

WindowsストアアプリでWindows.Data.Json名前空間のJsonArrayクラスを使ってJSONデータをパースする

.NETアプリケーションではJSONよりもXMLの方が簡単に扱うことができます。

サードパーティ製のライブラリでは「JSON.NET」が有名ですが、本記事では標準ライブラリだけを使ってJSONをパースしてみましょう。

JSONデータのパースをおこなうためのクラスが、Windowsストアアプリでは用意されています。Windows.Data.Json名前空間のJsonArrayクラスやJsonObjectクラスを使用します。

private void buttonReadJson_Click(object sender, RoutedEventArgs e)
{
    var jsonData = @"
            [
                {""id"" : 1},
                {""id"" : 2}
            ]";

    // JSONのデータ配列をパースする
    var array = default(JsonArray);
    var isSuccess = JsonArray.TryParse(jsonData, out array);
    if (!isSuccess)
    {
        // パースに失敗
        return;
    }

    foreach (var item in array)
    {
        var obj = item.GetObject();
        Debug.WriteLine("id: {0}", obj["id"].GetNumber());
    }
}

JsonArray.Parseメソッドに文字列型のJSONデータを与えることで、パースをおこなうことができます。出力は以下のようになります。

id: 1
id: 2