以下の JSON 文字列で、"datastreams" 配列内の "at" および "current_value" プロパティの値にアクセスするにはどうすればよいですか?
この例では、データストリームは 1 つだけですが、実際には多数存在する可能性があります。「id」プロパティでデータストリームにアクセスする必要があります。この問題を解決したら、目的のデータストリームの ID に対して id == を指定した where 句を使用する予定です。
ここで説明したアプローチを使用してみましたが、「Windows 8 の JSON – A Simpler Approach」の下にありますが、機能していません。
このコードにjson
は、呼び出しているサービスから返された JSON が含まれています。prop
が入力されていJsonArray
ます。current
「JSON値が見つかりません」という内部メッセージで例外が発生します
var json = JsonObject.Parse(responseBodyAsText);
var prop = json.GetNamedArray("datastreams");
var current = from p in prop
select new
{
datastream = p.GetObject().GetNamedString("datastreams"),
datetime = p.GetObject().GetNamedString("at"),
value = p.GetObject().GetNamedString("current_value")
};
JSON 文字列は次のとおりです。
{
"title":"X",
"status":"X",
"creator":"X",
"datastreams":
[
{
"at":"x",
"max_value":"X",
"current_value":"X",
"id":"X",
"min_value":"X"
}
],
"location":{"exposure":"x","domain":"x","disposition":"x","lat":X,"lon":-X},
"created":"X",
"tags":["X"],
"feed":"X",
"private":"X",
"id":X,
"description":"X",
"version":"X",
"updated":"X"
}