服务器之家

服务器之家 > 正文

详解SpringMVC @RequestBody接收Json对象字符串

时间:2020-07-25 15:17     来源/作者:椰汁菠萝

页面提交请求参数有两种,一种是form格式提交,一种json格式提交

通常情况下我们使用的都是form格式提交的数据,数据格式:k=v&k=v,这个时候用springMVC接收参数没有问题,但有时候前端会通过json向后端传递数据,就会出现springMVC获取不到参数值的情况

注意:jQuery的$.post方法虽然也可以传递json格式数据,但实际上是用的form格式提交,jquery会帮你把json转成form格式提交后台

所以其实可以通过$.post,$.get来提交json格式,让jquery帮你转换,可是如果后端用restful,那就只能用以下方法解决

JavaScript 代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<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接收

?
1
2
3
4
5
@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,只能是数据格式了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/suo082407128/article/details/51436388

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
返回顶部