我从EPA的UV Index API获得了一些JSON。 json是一个包含单独元素的数组。 JSON示例:
foreach
为了解析它,我假设我可以使用JObject EPAData = JObject.Parse(b.Result);
foreach (var UVIndex in EPAData.Root)
{
string uv = (string)UVIndex["UV_VALUE"];
//Do whatever I want with the UV index
};
语句来检索每个元素的UV索引属性的值。 b.Result是上面的JSON。
{{1}}
然而,这似乎并没有起作用。我收到一条错误消息:
应用程序出错:从JsonReader读取JObject时出错。当前 JsonReader项不是对象:StartArray。路径'',第1行, 位置1。
答案 0 :(得分:1)
您的JSON代表一个数组,而不是一个对象,因此请改用JArray.Parse
:
JArray EPAData = JArray.Parse(b.Result);
foreach (var UVIndex in EPAData)
{
Console.WriteLine (UVIndex["UV_VALUE"]); // 0, 1, 1, etc.
}
答案 1 :(得分:0)
如果您想获得Uv_VALUE的值,只是它很简单,您可以使用此代码:
var json = JArray.Parse(s);
var list_items = json.Children<JObject>().Properties().Where(p => p.Name == "UV_VALUE").ToList();
list_items.ForEach(c=>Console.WriteLine(c.Name+" "+c.Value));