使用Json.NET将 JSON 字符串反序列化为对象时,如何要求 JSON 中存在键/属性,但允许 NULL 值?
例如:
可以说我有一个类/对象...
[DataContract]
public class Car
{
[DataMember(IsRequired = true)]
public string Vin {get; set;}
[DataMember(IsRequired = true)]
public string Color {get; set;}
public string Description {get; ;set}
}
在上面的示例中,VIN 和 Color 是必需的,如果 JSON 字符串中缺少其中任何一个,则会引发异常。但是可以说,Description 属性在反序列化后是否具有值是可选的。换句话说,NULL 是一个有效值。有两种方法可以在 JSON 字符串中实现这一点:
1)
{
"vin": "blahblahblah7",
"color": "blue",
"description": null
}
或 2)
{
"vin": "blahblahblah7",
"color": "blue"
}
问题是我不想仅仅因为 JSON 字符串中遗漏了 的键/值对就假设 Description 值应该为 NULL。我希望 JSON 的发件人明确将其设置为 NULL。如果场景 #2 发生,我想检测它并以错误消息响应。那么我如何要求键/值对存在,但接受 NULL 作为值?
如果有帮助,我会尝试在ASP.NET Web API项目的上下文中解决这个问题。