我有一个类列表的Json解析错误,检测部分对象JSON格式错误 - ASPNET的WebAPI
class Sample
{
public string str1;
public string str2;
public string str3;
public string str4;
public DateTime date1;
public DateTime date2;
}
而且我使用Aspnet Webapi Http Post
方法和需要解析的身体,
一般来说,如果人体的JSON格式有很大的误差,如在一开始缺乏支架:
[
"str1": "32226","str2":"ABC","str3" :"91492","str4":"AC","date1":"1997-04-23T18:25:43",
"date2":"1997-04-23T18:25:43"
},
{"str1": "3226","str2":"ABF","str3" :"492","str4":"AB","date1":"1997-04-23T18:25:43","date2":"1997-04-23T18:25:43"
}
]
使用时[FromBody]List<Sample> samples
解析身体,你会得到samples = null
,所以你可以使用空讲,人体的JSON格式错误,
但是当我尝试只是做一个物业的日期时间JSON格式错误,如DATE2在下面的第一个对象:
[
{"str1": "32226","str2":"ABC","str3" :"91492","str4":"AC","date1":"1997-04-23T18:25:43",
"date2":"1997-04-2325:43" -> date2 error datetime string
},
{"str1": "3226","str2":"ABF","str3" :"492","str4":"AB","date1":"1997-04-23T18:25:43","date2":"1997-04-23T18:25:43"
}
]
然后使用[FromBody]List<Sample> samples
解析,它可以成功地解析第二个对象,并显示列表计数为samples
等于1,
但是没有任何异常或信息我可以告诉第一个对象是JSON解析失败,如果两个对象是所有解析正确将使samples
Count is 2.
我尝试将DateTime Type更改为DateTime ?,但是,只有第二个对象被解析,并且第一个对象被默认省略。
有什么办法来检测这种错误,只有一些对象的JSON格式是错误的?
我能想到一个简单的方法是计数炭{
当今时代,并比较了表计数值,如果{
的计数<清单算的话,必须有一些对象不能成功地解析,但似乎不是一个好方法。
谢谢您回答,我会稍后再尝试。有没有办法在执行逻辑代码中告诉?我想在post方法中告诉解析错误,这样我可以返回一个异常HttpResponseMessage来通知用户何时输入正文错误。 –