将 JSON 反序列化为列表<long>失败



在我的ASP.Net Core 3.1应用程序中,我有以下json字符串:

string body = "{"idsModel":{"IdsToDraft":[792,793,794]}}";

这是我的POCO,我正试图将该字符串反序列化为:

public class IdsModel
{
public List<long> IdsToDraft { get; set; }
}

这是我的反序列化代码:

idsModel = Newtonsoft.Json.JsonConvert.DeserializeObject<IdsModel>(body);

最后,创建了idsModel对象,但该对象的IDsToDraft属性为null。

我已经尝试了Newtonsoft和.Net Core System.Text.Json序列化程序。

我在源字符串中尝试了不同的套管组合。

为什么?为什么不反序列化List属性?!?

您缺少根对象,即包含idsModel:的对象

public class RootClass
{
public IdsModel IdsModel { get; set; }
}
public class IdsModel
{
public List<long> IdsToDraft { get; set; }
}
// ...
var idsModel = Newtonsoft.Json.JsonConvert.DeserializeObject<RootClass>(body);

模型应该看起来像

public class IdsModel
{
public List<long> IdsToDraft { get; set; }
}
public class RootObject
{
public IdsModel idsModel { get; set; }
}

最新更新