我有这样的 JSON,我试图将其反序列化为 .NET Core 3.1 C# 对象。
{
"meta": {
"/workers/assignments/myItems": {
"codeList": {
"listItems": [
{
"codeValue": "KEY1",
"shortName": "This is item 1"
},
{
"codeValue": "KEY2",
"shortName": "This is item 2"
}
]
}
}
}
}
我的课程是这样的:
class Meta {
[JsonProperty("/workers/assignments/myItems")]
public ItemsMeta Items {get;set;}
}
class ItemsMeta {
public CodeList codeList { get; set; }
}
class CodeList {
public List<ListItem> listItems { get; set; }
}
public class ListItem {
public string codeValue { get; set; }
public string shortName { get; set; }
public string longName { get; set; }
}
但是var meta = JsonConvert.DeserializeObject<Entities.Generated.Meta>(json);
对 Items 属性有一个空引用。
我究竟做错了什么?如果没有自定义 JSON 解析器,这可能吗?我已经尝试过 Newtonsoft 和 System.Text.Json。
您的meta
标签位于另一个对象或RootObject
. 将其添加到您的模型并将您的 json 反序列化为该对象:
public class Meta
{
[JsonProperty("/workers/assignments/myItems")]
public ItemsMeta Items { get; set; }
}
public class ItemsMeta
{
public CodeList codeList { get; set; }
}
public class CodeList
{
public List<ListItem> listItems { get; set; }
}
public class ListItem
{
public string codeValue { get; set; }
public string shortName { get; set; }
public string longName { get; set; }
}
public class Rootobject
{
public Meta Meta { get; set; }
}
现在反序列化:
var root = JsonConvert.DeserializeObject<Rootobject>(json);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句