当有人向我的webapi发送无效的JSON时:
"items" : [
,
{
...
}
]
然后反序列化不会失败并放置一个" null" value作为数组的第一个元素,是否可以让json反序列化器失败并返回错误?或者只是从数组中删除null元素。
我已经尝试添加转换器,我可以删除空元素,但我找不到源,现有的数组(反)序列化工作原理。
我找到了可以反序列化List / Array的MassTransit.Serialization.ListJsonConverter,所以我覆盖它调用base deserialize方法并检查结果如果它包含空值只是抛出异常,但对我来说奇怪的是Newtonsoft.Json不包含数组转换器
和webapi一样,我不想自己解析任何东西,所以只有可能的解决方案来扩展当前的反序列化方法
答案 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上,您可以返回一些有价值的回复。