gpt4 book ai didi

c# - json 数组中的嵌套项未被反序列化

转载 作者:行者123 更新时间:2023-12-05 03:23:59 24 4
gpt4 key购买 nike

我正在尝试从 api 反序列化 json 字符串。

除了嵌套项目之外的所有工作 - 总是以 null 结尾的位置

这是字符串结构:

[
{
"CompanyProfile": "<p>A&amp;B Inc etc...</p>",
"Address": "56 Test Street, Test, UK",
"Location": {
"Latitude": 61.52787,
"Longitude": -4.32095,
"Zoom": 13,
"Icon": null,
"Format": 0,
"Api": null,
"SearchTyped": null
},
"Id": 1723,
"Name": "A&B Inc"
},
{
"CompanyProfile": "<p>B&amp;C Inc etc...</p>",
"Address": "57 Test Street, Test, UK",
"Location": {
"Latitude": 61.2122,
"Longitude": -4.31111,
"Zoom": 13,
"Icon": null,
"Format": 0,
"Api": null,
"SearchTyped": null
},
"Id": 1723,
"Name": "B&C Inc"
},
]

这些是要映射到的类:

public class MemberDto
{
public int Id { get; set; }
public string? Name { get; set; }
public string? CompanyProfile { get; set; }
public string? Address { get; set; }
public Location? Location { get; internal set; }
}

public class Location
{
public decimal Latitude { get; set; }
public decimal Longitude { get; set; }
}

这是反序列化代码:

var result = await response.Content.ReadAsStringAsync();
var members = JsonConvert.DeserializeObject<List<MemberDto>>(result);

我知道我可以使用 ReadFromJsonAsync<List<MemberDto>>()以及但使用 ReadFromString 所以我可以在反序列化之前检查 json。无论如何,ReadFromJsonAsync 的结果完全相同。

除 Location 之外的所有内容都已成功反序列化

有人知道问题是什么吗?

最佳答案

去掉 Location 的 setter 中的内部访问修饰符。

public Location? Location { get; set; } 

关于c# - json 数组中的嵌套项未被反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72389513/

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