2015-06-19 1 views
-1

я уже просил в этом: sampleКак разобрать объект JSON с динамическим именем суб-объекта в C#

, но теперь у меня есть другой формат JSON:

{ 
    "response": "success", 
    "example" :{ 
     "001":{ 
      "ID":"001", 
      "Name":"Test1" 
     }, 
     "002":{ 
      "ID": "002", 
      "Name": "test2" 
     } 
    }, 
    "reference": "google.com" 
} 

мой вопрос еще раз как я могу получить доступ к Name:

ответ

0

Все, что вам нужно, это добавить пару string членов в ваш класс Response.

В основном, код не изменился вообще.
Вы даже можете разобрать этот объект, используя предыдущий код - вы просто потеряете response и reference значений.

public class Response 
{ 
    public string response { get; set; } 
    public Dictionary<string, ExampleObj> example { get; set; } 
    public string reference { get; set;} 
} 

public class ExampleObj { 
    public string ID { get; set; } 
    public string Name { get; set; } 
} 

// Somewhere in code 

string jsonString = "{ \"response\": \"success\", \"example\" :{ \"001\":{ \"ID\":\"001\", \"Name\":\"Test1\" }, \"002\":{ \"ID\": \"002\", \"Name\": \"test2\" } }, \"reference\": \"google.com\"}"; 

var obj = JsonConvert.DeserializeObject<Response>(jsonString); 

foreach (var keyValuePair in obj.example) 
{ 
    Console.WriteLine("That's a {0}", keyValuePair.Key); 
    Console.WriteLine("It's name is {0}", keyValuePair.Value.Name); 
} 

Console.WriteLine("And, Hey! That's a reference '{0}' and response '{1}'", obj.reference, obj.response); 

Я надеюсь, что вы не будете задавать вопрос каждый раз, когда вам нужно добавить одну переменную в класс. Вы должны попытаться понять это сами: прочитайте документацию, Google для конкретных вопросов теории, но не практические решения, постарайтесь сделать это сами. Это единственный способ стать инженером-программистом.

+0

Спасибо за совет :) – jt25

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