SpringMVC @RequestBody接收Json对象字符串

以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: "json",contentType:"application/json" 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List.

JavaScript 代码:

 1 <script type="text/javascript">  
 2     $(document).ready(function(){  
 3         var saveDataAry=[];  
 4         var data1={"userName":"test","address":"gz"};  
 5         var data2={"userName":"ququ","address":"gr"};  
 6         saveDataAry.push(data1);  
 7         saveDataAry.push(data2);         
 8         $.ajax({ 
 9             type:"POST", 
10             url:"user/saveUser", 
11             dataType:"json",      
12             contentType:"application/json",               
13             data:JSON.stringify(saveData), 
14             success:function(data){ 
15                                        
16             } 
17          }); 
18     });  
19 </script> 

Java代码

1  @RequestMapping(value = "saveUser", method = {RequestMethod.POST }}) 
2     @ResponseBody  
3     public void saveUser(@RequestBody List<User> users) { 
4          userService.batchSave(users); 
5     } 
原文地址:https://www.cnblogs.com/tobey/p/4837180.html