SpringBoot获取前端传递JSON的几种方法
一、Json对象+@RequestBody接收
var val = {id: 1, name: "小明"}; $.ajax({ url: "/getJson", dataType: "JSON", type: "post", contentType: 'application/json;charset=UTF-8', data: JSON.stringify(val), success: function (msg) { console.log(msg) } })
后端获取参数:Map<String,Object>
@PostMapping("/getJson") @ResponseBody public Map<String,Object> getJsonVal(@RequestBody Map<String,Object> user) { System.out.println("user = " + user.get("id")); System.out.println("user = " + user.get("name")); return user; }
后端获取参数:对象
@PostMapping("/getJson") @ResponseBody public User getJsonVal(@RequestBody User user) { return user; }
二、传JSON对象
var val = {"id": 1, "name": "小明"}; $.ajax({ url: "/getJson", dataType: "JSON", type: "post", // contentType: 'application/json;charset=UTF-8', //不能加 data: val, success: function (msg) { console.log(msg) } })
后端获取参数
@PostMapping("/getJson") @ResponseBody public User getJsonVal(@RequestParam("id") String id,@RequestParam("name") String name) { User user = new User(); user.setId(Integer.parseInt(id)); user.setName(name); return user; }
三、json集合+@RequestBody接收
var val = [{"id": 1, "name": "小明"},{"id": 2, "name": "小红"}]; $.ajax({ url: "/getJson", dataType: "JSON", type: "post", contentType: 'application/json;charset=UTF-8', //不能加 data: JSON.stringify(val), success: function (msg) { console.log(msg) } })
后端获取参数
@PostMapping("/getJson") @ResponseBody public List<User> getJsonVal(@RequestBody List<User> user) throws IOException { for(User user2 : user){ System.out.println("user2 = " + user2); } return user; }