1. 程式人生 > >疑難雜症(6)-- SpringMVC @RequestBody接收Json物件字串

疑難雜症(6)-- SpringMVC @RequestBody接收Json物件字串

以前,一直以為在SpringMVC環境中,@RequestBody接收的是一個Json物件,一直在除錯程式碼都沒有成功,後來發現,其實 @RequestBody接收的是一個Json物件的字串,而不是一個Json物件。然而在ajax請求往往傳的都是Json物件,後來發現用 JSON.stringify(data)的方式就能將物件變成字串。同時ajax請求的時候也要指定dataType: “json”,contentType:”application/json” 這樣就可以輕易的將一個物件或者List傳到Java端,使用@RequestBody即可繫結物件或者List.

<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:"POST"
, url:"user/saveUser", dataType:"json", contentType:"application/json", data:JSON.stringify(saveData), success:function(data){ } }); });
</script>

Java程式碼

    @RequestMapping(value = "saveUser"
, method = {RequestMethod.POST }}) @ResponseBody public void saveUser(@RequestBody List<User> users) { userService.batchSave(users); }