详解SpringMVC @RequestBody接收Json对象字符串
作者:椰汁菠萝
这篇文章主要介绍了详解SpringMVC @RequestBody接收Json对象字符串,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
页面提交请求参数有两种,一种是form格式提交,一种json格式提交
通常情况下我们使用的都是form格式提交的数据,数据格式:k=v&k=v,这个时候用springMVC接收参数没有问题,但有时候前端会通过json向后端传递数据,就会出现springMVC获取不到参数值的情况
注意:jQuery的$.post方法虽然也可以传递json格式数据,但实际上是用的form格式提交,jquery会帮你把json转成form格式提交后台
所以其实可以通过$.post,$.get来提交json格式,让jquery帮你转换,可是如果后端用restful,那就只能用以下方法解决
JavaScript 代码:
<script type="text/javascript">
$(document).ready(function(){
var saveDataAry=[];
var data1={"userName":"test","address":"gz"};
var data2={"userName":"ququ","address":"gr"};
saveDataAry.push(data1);
saveDataAry.push(data2);
$.ajax({
type:"PUT",
url:"/user",
dataType:"json",
contentType:"application/json;charset=utf-8",
data:JSON.stringify(saveData),
success:function(data){
}
});
});
</script>
后端springMVC接收
@RequestMapping(value = "user", method = RequestMethod.PUT )
@ResponseBody
public void saveUser(@RequestBody List<User> users) {
userService.batchSave(users);
}
注意:提交的data必须为json格式字符串,content-type为'application/json; charset=utf-8'表明提交的类型和编码格式,dataType是预期服务端返回的数据类型,其中对json字符串的格式有严格要求,形如:'{"type":"type","fileftppath":"fileftppath","map":{"id":1,"name":"suo"}}',字符串,key的双引号是必须的,否则400 bad request,当然如果你数据格式不正确,也会400,比如你传了个"step1",后端用Integer接收,也是400,直接从json对象转json串,这个json串格式是不会有问题的,如果400,只能是数据格式了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- 解读@RequestBody的正确使用方法
- 快速解决SpringMVC @RequestBody 用map接收请求参数的问题
- @ResponseBody 和 @RequestBody 注解的区别
- SpringMVC restful 注解之@RequestBody进行json与object转换
- springmvc @RequestBody String类型参数的使用
- 关于Springboot | @RequestBody 接收到的参数对象属性为空的问题
- Springboot拦截器如何获取@RequestBody参数
- 亲测SpringBoot参数传递及@RequestBody注解---踩过的坑及解决
- springMvc注解之@ResponseBody和@RequestBody详解
- SpringBoot中@RequestBody的伪表单提交场景
