发布于 4年前

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), 即可忽略未定义字段的接收.

©2020 edoou.com   京ICP备16001874号-3