gpt4 book ai didi

c# - 将此 JSON 响应反序列化为 C#

转载 作者:太空宇宙 更新时间:2023-11-03 17:01:31 24 4
gpt4 key购买 nike

我有这个特定的 JSON 响应,我试图反序列化但没有成功。我希望有人能帮助我。

这是我得到的 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并获得了这些推荐类(class):

    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

显然我没有为 DeserializeObject 创建 (json2csharp) 正确的类,遗憾的是我无法控制 JSON 响应 (vendor = SimpliSafe)。

很明显,“98765”是一个值(位置编号),但 json2csharp 将其放入这个 __invalid_type__98765 类中,这可能就是它变为空的原因。

知道类应该如何查找这个特定的 JSON 以成功反序列化吗?

谢谢!扎克斯

最佳答案

你应该可以用字典来做到这一点:

public class MyData{ 
[JsonProperty("locations")]
public Dictionary<string, Location> Locations {get;set;}
}
public class Location
{
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; }
}

关于c# - 将此 JSON 响应反序列化为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29376491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com