使用JSON.NET和生成的类反序列化元素

时间:2013-09-16 11:15:28

标签: c# json

我有json文件:

    [
       {
          "as_of":"2012-08-31T15:31:55Z",
          "trends":[
             {
                "name":"#GDTHATXX",
             },
             {
                "name":"#UnMundoEnElQue",
             }
          ],
          "created_at":"2012-08-31T15:30:32Z",
          "locations":[
             {
                "name":"Globales",
                "woeid":1
             }
          ]
       }
    ]

并生成类:

public class Trend
{
    public string name { get; set; }
}

public class Location
{
    public string name { get; set; }
    public int woeid { get; set; }
}

public class RootObject
{
    public string as_of { get; set; }
    public List<Trend> trends { get; set; }
    public string created_at { get; set; }
    public List<Location> locations { get; set; }
}

我可以像这样反序列化RootObject中的元素:

 List<RootObject> values = JsonConvert.DeserializeObject<List<RootObject>>(Text);
            lvMain3.ItemsSource = values;

但是如何从“趋势”或“位置”反序列化元素。谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

内部元素与RootObject一起被反序列化,因此在执行

之后
List<RootObject> values = JsonConvert.DeserializeObject<List<RootObject>>(Text);

您可以从值变量访问“trend”和“locations”元素。 当然,您可以使用linq访问列表中的特定项目:

values.First().trends.First().name;

或类似的东西。