2014-04-07 3 views
0

У меня есть файл в формате JSON, как показано ниже с 10 пунктов:Как получить тег в формате + C JSON #

"items": [ 
       { 
       "kind": "Test#result", 
       "cacheId": "PR1wQp1jFRQJ", 
       "pagemap": { 
        "person": [ 
          { 
         "location": "Greater Minneapolis-St. Paul Area", 
         "role": "Test at Test" 
          } 
           ], 
        "metatags": [ 
          { 
          "lnkd-track-json-lib": "test", 
          } 
           ], 
        "hcard": [ 
          { 
        "title": "Wealth Advisor at XXX", 
        "photo": "contag.jpg" 
          }, 
        { 
         "fn": "Unviersity of XXXX" 
        }, 
        ] 
       } 
     }, 
     NEXT ITEM.... 
] 

и я использую ниже код, чтобы получить каждый элемент из этого JSON:

 string result = webClient.DownloadString(String.Format("aurl.com?alt=json")); 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     Dictionary<string, object> collection = serializer.Deserialize<Dictionary<string,   object>>(result); 
     foreach (Dictionary<string, object> item in (IEnumerable)collection["items"]) 
     { 
      Console.WriteLine("Title: {0}", item["kind"]); 
      Console.WriteLine("Role: {0}", ??); 
      Console.WriteLine(); 
     } 

Как я могу получить «роль» и местоположение из этого JSON с помощью моей логики? Я использую C# для ее записи.

ответ

0

Я бы начал с создания класса для представления ваших данных, а затем с помощью сериализатора для создания класса.

class items 
{ 
    public string kind {get;set;} 
    public string cacheId {get;set;} 
    public string pagemap {get;set;} 
    public person person {get;set;} 

} 

class person 
{ 
    public string location {get;set;} 
    public string role {get;set;} 
} 

и так далее ...

Тогда ...

string jsonInput="have your valid json input here"; // 
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); 
items objItems = jsonSerializer.Deserialize<items>(jsonInput) 

теперь мы можем назвать наши детали как и любой другой объект в нашем классе.

items.kind 
items.cacheId 
items.person.location 

Ключ к ним закладывает основу для более легкого доступа к данным позже.

+0

так что я могу использовать объект, чтобы получить роль легко? – MT467

+0

Да, однако, если ваша модель данных представляет собой несколько объектов, просто имейте в виду, что вы также должны показать это в своих классах. , так что вы можете закончить с помощью 'code'class Myclass {items [] items {get; set;}}' code' – Perkentha

+0

Можете ли вы обновить свой код несколькими объектами? – MT467

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