后台@RequestBody接受的是一个json格式的字符串(一定是一个字符串)
1、Json对象:
先介绍一下json对象,对象的属性是可以用:对象.属性进行调用的。例如:
var person={"name":"zhangsan","sex":"男","age":"24"}//json对象
alert(person.name);//zhangsan
alert(typeof person);//person的类型,为object类型
---
2、Json字符串:JavaScript中的字符串是单引号或者双引号引起来的
var person='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串
alert(person);//{"name":"zhangsan","sex":"男","age":"24"}
alert(typeof person);//person的类型,为string类型
---
3、JSON字符串和JOSN对象的转换
json字符串--->json对象:
var person='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串
var personObject = JSON.parse(person);
json对象--->json字符串:
var person={"name":"zhangsan","sex":"男","age":"24"};//json对象
var personString = JSON.stringify(person);
在SpringMVC中基于REST开发时,前端传入后台的应该是一个json格式的字符串,而不是一个json对象
---
案例:
$.ajax({ type:"POST", url:"user/saveUser", dataType:"json", contentType:"application/json", data:JSON.stringify(saveData), success:function(data){ } });
ajax请求的时候也要指定dataType: “json”,contentType:”application/json” 这样就可以轻易的将一个对象或者List传到Java后台
@Controller @RequestMapping(value = "saveUser") @ResponseBody public void saveUser(@RequestBody List<User> users) { userService.batchSave(users); }
后台用@RequestBody将其封装到List<User>
中。然后进入Service层