@requestBody标签
优势:简单实现对Json字符串的解析,并将结果注入到JavaBean中
@RequestMapping("/addUser")
@ResponseBody
public Object addUser(@RequestBody User user){
//addUser
return true;
}
缺点:
1:Json字符串不能包含多余的信息
2:Json字符串不能使用 ’ 单引号来包含内容,必须用双引号”.如下所示
正确 : ‘{“user”:”Tom”,”id”:”1”}’
错误 : “{‘user’:’name’,’id’:’2’}”
总结:Spring通过RequestBody注解处理Json字符串是有限制的,而这些限制是在我花了好几个小时处理400,415等各种错误中发现的.因为我做的项目是Java Web项目,接口都是通过HTML访问,无法理解为什么要用RequestBody去处理Post请求,HTML还要通过JSON.stringify(jsonData)来将Json对象转换成Json字符串,明明可以直接将Json对象作为参数传递给服务器,与之对应的,服务器可以不用添加RequestBody标签,获取请求的参数也容易很多.但是当面临其他的平台调用Java的Web接口时,Json字符串作为通用的通信方式,最后还是回到了处理Json字符串的老路上,才理解了为何当初会选择使用RequestBody.
最后:其实RequestBody真的很坑,不如直接拿到Post的Json字符串,通过现有的jar实现Json字符串与JavaBean的匹配,效果好很多!!!