C# 使用JSON.net反序列化JSON数组

C# 使用JSON.net反序列化JSON数组,c#,json,windows-phone-8,windows-phone,json.net,C#,Json,Windows Phone 8,Windows Phone,Json.net,我有一些来自EPA的UV索引API的JSON。json是一个数组,其中包含单独的元素。 JSON的示例: [ { "ORDER": 1, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 07 AM", "UV_VALUE": 0 }, { "ORDER": 2, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 08 AM", "UV_VALUE": 1 }, { "ORDER": 3, "ZIP": 19021, "DATE_TIM

我有一些来自EPA的UV索引API的JSON。json是一个数组,其中包含单独的元素。 JSON的示例:

[
{
"ORDER": 1,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 07 AM",
"UV_VALUE": 0
},
{
"ORDER": 2,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 08 AM",
"UV_VALUE": 1
},
{
"ORDER": 3,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 09 AM",
"UV_VALUE": 1
},
{
"ORDER": 4,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 10 AM",
"UV_VALUE": 2
},
{
"ORDER": 5,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 11 AM",
"UV_VALUE": 3
},
{
"ORDER": 6,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 12 PM",
"UV_VALUE": 7
},
{
"ORDER": 7,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 01 PM",
"UV_VALUE": 6
},
{
"ORDER": 8,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 02 PM",
"UV_VALUE": 6
},
{
"ORDER": 9,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 03 PM",
"UV_VALUE": 7
},
{
"ORDER": 10,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 04 PM",
"UV_VALUE": 5
},
{
"ORDER": 11,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 05 PM",
"UV_VALUE": 3
},
{
"ORDER": 12,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 06 PM",
"UV_VALUE": 1
},
{
"ORDER": 13,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 07 PM",
"UV_VALUE": 0
},
{
"ORDER": 14,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 08 PM",
"UV_VALUE": 0
},
{
"ORDER": 15,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 09 PM",
"UV_VALUE": 0
},
{
"ORDER": 16,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 10 PM",
"UV_VALUE": 0
},
{
"ORDER": 17,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 11 PM",
"UV_VALUE": 0
},
{
"ORDER": 18,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 12 AM",
"UV_VALUE": 0
},
{
"ORDER": 19,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 01 AM",
"UV_VALUE": 0
},
{
"ORDER": 20,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 02 AM",
"UV_VALUE": 0
},
{
"ORDER": 21,
"ZIP": 19021,
"DATE_TIME": "MAY/27/2015 03 AM",
"UV_VALUE": 0
}
]
为了解析它,我假设可以使用
foreach
语句来检索每个元素的UV index属性的值。b、 结果是上面的JSON

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
};
然而,这似乎不起作用。我收到一条错误消息:

应用程序错误:从JsonReader读取JObject时出错。现在的 JsonReader项不是对象:StartArray。路径“”,第1行, 立场1


您的JSON代表一个数组,而不是一个对象,因此请改用
JArray.Parse

JArray EPAData = JArray.Parse(b.Result);

foreach (var UVIndex in EPAData)
{
    Console.WriteLine (UVIndex["UV_VALUE"]); // 0, 1, 1, etc.
}

示例:

如果您只想获得Uv\u值的值,它非常简单,您可以使用以下代码:

        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));
var json=JArray.Parse;
var list_items=json.Children();
list_items.ForEach(c=>Console.WriteLine(c.Name+“”+c.Value));