2013-07-06 5 views
1

У меня есть ответ JSON, какдесериализации только один узел ответа JSON

{ 
    "appStatus":{ 
    "status":true 
    }, 
    "lastSyncDate":"06-07-2013 13.54.27", 
    "configResponse":{ 
    "status":{ 
     "status":true 
    }, 
    "configs":{ 
     "APPLOGENABLED":{ 
     "configCode":"APPLOGENABLED", 
     "configDesc":"enable or disable logging from front end", 
     "configType":"TAB", 
     "configValue":"Y" 
     }, 
     "COMMENTSTIMER":{ 
     "configCode":"COMMENTSTIMER", 
     "configDesc":"timer for comments in seconds", 
     "configType":"TAB", 
     "configValue":"60" 
     }, 
     "SUMMARYTIMER":{ 
     "configCode":"SUMMARYTIMER", 
     "configDesc":"timer for summary in seconds", 
     "configType":"TAB", 
     "configValue":"30" 
     }, 
     "ALERTSTIMER":{ 
     "configCode":"ALERTSTIMER", 
     "configDesc":"timer for alerts in seconds", 
     "configType":"TAB", 
     "configValue":"60" 
     } 
    }, 
    "lastSyncDate":"06/07/2013 13.48.13" 
    } 
} 

Использование json.NET, я хочу, чтобы извлечь configResponse в словарь. Я знаю, что я могу непосредственно преобразовать словарь объект как этот

JsonConvert.DeserializeObject<Dictionary<string,string>>().... 

но поскольку configResponse является суб элемент, я не могу разобрать его по мере необходимости.

Я десериализация выше ответа JSon как

public class ConfigResponse 
{ 
    public Status status { get; set; } 
    public Dictionary<string, ConfigurationItem> configs { get; set; } 
    public string lastSyncDate { get; set; } 
} 

public class ConfigurationItem 
{ 
    public String configCode { get; set; } 
    public String configDesc { get; set; } 
    public String configType { get; set; } 
    public String configValue { get; set; } 
} 
+0

Вы можете добавить свой полный код для лучшего понимания – rajansoft1

ответ

0

я только использовать этот метод, и он работал.

await JsonConvert.DeserializeObjectAsync<ConfigResponse>(jsontoobject, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); 
2

Вы можете разобрать JSON строку в JObject, получить суб-объект "configResponse", затем десериализации его в ConfigResponse. Это одна строки коды:

JObject.Parse("{...}")["configResponse"].ToObject<ConfigResponse>() 

Если вам нужен пользовательский сериалайзер установить параметры десериализации, вы можете передать его ToObject<T>() методы.

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