相关疑难解决方法(0)

使用Json.NET反序列化:需要存在属性/键

使用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项目的上下文中解决这个问题.

.net c# json.net

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×1

c# ×1

json.net ×1