2013-09-16 2 views
-1

У меня есть файл в формате JSON:десериализации elemets с Json.NET и сгенерированные классы

[ 
     { 
      "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; } 
} 

Я десериализации elemets в RootObject так:

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

Но как можно десериализовать элемент из «трендов» или «местоположений». Спасибо за помощь!

+1

Не десериализуются ли они? – BartoszKP

+0

Element from RootObject deserializing, но ehen i writing Список не десериализует – user2781147

+0

Если десериализация работает, почему бы вам не называть 'values ​​[0] .trends' или' values ​​[0] .locations'? –

ответ

0

Внутренние элементы в настоящее время десериализации вместе с RootObject, поэтому после выполнения

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

Вы можете получить доступ к обоим «тенденции» и «Места» элементы из значений переменных. Конечно, вы можете использовать LINQ для доступа к конкретным пунктам из списка:

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

Или что-то вроде этого.

Смежные вопросы