RequestBody 报错解决方法
(注:本文使用Jackson2作为JSON序列化和反序列化库)
如果http请求为多层级或者数据量大, 比较复杂的时候, 可以考虑采用post json的方式.
也就是设置请求方法为POST, Header中Content-Type为application/json, request body中是一个json字符串.
在SpringMVC中接收的方式就是采用注解@RequestBody
, 比如:
@RequestMapping(value = "/api")
@ResponseBody
public Object api(@RequestBody SampleForm form) {
return new Object();
}
但有时这个api会抛出类似 The request sent by the client was syntactically incorrect 这样的异常.
产生这个异常的原因是请求的json中包含了SampleForm
这个类没定义的字段.
解决方法就是给SampleForm
这个类定义上加上注解 @JsonIgnoreProperties(ignoreUnknown = true)
, 即可忽略未定义字段的接收.