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