我有这样的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);