使用Json.NET将JSON字符串反序列化为对象时,如何在JSON stirng中存在键/属性,但是允许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}
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,VIN和Color是必需的,如果JSON字符串中缺少其中任何一个,则会抛出异常.但是,我们可以说,在反序列化后,Description属性是否具有值是可选的.换句话说,NULL是有效值.有两种方法可以在JSON字符串中实现这一点:
1)
{
"vin": "blahblahblah7",
"color": "blue",
"description": null
}
Run Code Online (Sandbox Code Playgroud)
或2)
{
"vin": "blahblahblah7",
"color": "blue"
}
Run Code Online (Sandbox Code Playgroud)
问题是我不想假设Description值应该为NULL,因为它的键/值对被排除在JSON字符串之外.我希望JSON的发送者明确将其设置为NULL.如果情况#2发生,我想检测它并回复错误消息.那么我如何要求键/值对存在,但接受NULL作为值?
如果它有帮助,我试图在ASP.NET Web API项目的上下文中解决这个问题.