Json反序列化,将空元素放到数组中

时间:2017-02-22 07:47:43

标签: c# arrays json asp.net-mvc

当有人向我的webapi发送无效的JSON时:

"items" : [
        ,
        {               
            ...
        }
]

然后反序列化不会失败并放置一个" null" value作为数组的第一个元素,是否可以让json反序列化器失败并返回错误?或者只是从数组中删除null元素。

我已经尝试添加转换器,我可以删除空元素,但我找不到源,现有的数组(反)序列化工作原理。

我找到了可以反序列化List / Array的MassTransit.Serialization.ListJsonConverter,所以我覆盖它调用base deserialize方法并检查结果如果它包含空值只是抛出异常,但对我来说奇怪的是Newtonsoft.Json不包含数组转换器

和webapi一样,我不想自己解析任何东西,所以只有可能的解决方案来扩展当前的反序列化方法

1 个答案:

答案 0 :(得分:-1)

关于你的评论。 您可以像这样解析json字符串:

string jsonString = "SOME JSON STRING";
try
{
    JsonValue.Parse(jsonString);
}
catch (FormatException fex)
{
    //handle formatting exceptions
}
catch (Exception ex) //some other exception
{
    //handle other exceptions
}

在FormatException上,您可以返回一些有价值的回复。