java接收body中的json_详解SpringMVC @RequestBody接收Json对象字符串

本文介绍了如何在SpringMVC中使用@RequestBody注解接收JSON格式的数据。当前端以JSON格式发送数据时,SpringMVC默认无法解析,可以通过设置contentType为'application/json;charset=utf-8'并使用$.ajax进行提交。示例代码展示了如何处理JSON数组,并在后端批量保存。注意JSON字符串的格式要求,确保key包含双引号,否则可能导致400 Bad Request错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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){

}

});

});

后端springMVC接收

@RequestMapping(value = "user", method = RequestMethod.PUT )

@ResponseBody

public void saveUser(@RequestBody List 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,只能是数据格式了

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值