У меня есть этот специфический ответ JSON, который я пытаюсь десериализовать без успеха. Я надеюсь, что кто-то может мне помочь.Deserializing ответ JSON на C#
Вот ответ JSON я получаю:
{
"num_locations": 1,
"locations": {
"98765": {
"street1": "123 Fake Street",
"street2": "",
"city": "Lawrence",
"state": "Kansas",
"postal_code": "66044",
"s_status": "20",
"system_state": "Off"
}
}
}
Я использовал json2csharp http://json2csharp.com и получил эти рекомендуемые классы:
public class __invalid_type__98765
{
public string street1 { get; set; }
public string street2 { get; set; }
public string city { get; set; }
public string state { get; set; }
public string postal_code { get; set; }
public string s_status { get; set; }
public string system_state { get; set; }
}
public class Locations
{
public __invalid_type__98765 __invalid_name__98765 { get; set; }
}
public class RootObject
{
public int num_locations { get; set; }
public Locations locations { get; set; }
}
Но когда я пытаюсь использовать его в моем код:
var locationResponse = JsonConvert.DeserializeObject<RootObject>(response.Content);
Что я получаю (часы):
locationResponse : {RestSharpConsoleApplication.Program.RootObject} : RestSharpConsoleApplication.Program.RootObject
locations : {RestSharpConsoleApplication.Program.Locations} : RestSharpConsoleApplication.Program.Locations
__invalid_name__98765 : null : RestSharpConsoleApplication.Program.__invalid_type__98765
num_locations : 1 : int
Очевидно я не создаю (json2csharp) правые классы для DeserializeObject, и, к сожалению, я не имею никакого контроля над ответом JSON (поставщик = SimpliSafe).
Очевидно, что «98765» означает значение (номер места), но json2csharp делает его в этом классе __invalid_type__98765, и, вероятно, поэтому он получает значение null.
Любая идея, как классы должны искать, чтобы этот конкретный JSON был успешно десериализован?
Спасибо! Zachs
спасибо! –