当前位置:   article > 正文

springmvc接收json数据的4种方式_spring mvc 接收json数组参数

spring mvc 接收json数组参数

1、以RequestParam接收

前端传来的是json数据不多时:[id:id],可以直接用@RequestParam来获取值

  1. @Autowired
  2. private AccomodationService accomodationService;
  3. @RequestMapping(value = "/update")
  4. @ResponseBody
  5. public String updateAttr(@RequestParam ("id") int id) {
  6. int res=accomodationService.deleteData(id);
  7. return "success";
  8. }

2、以实体类方式接收

前端传来的是一个json对象时:{【id,name】},可以用实体类直接进行自动绑定

  1. @Autowired
  2. private AccomodationService accomodationService;
  3. @RequestMapping(value = "/add")
  4. @ResponseBody
  5. public String addObj(@RequestBody Accomodation accomodation) {
  6. this.accomodationService.insert(accomodation);
  7. return "success";
  8. }

3、以Map接收

前端传来的是一个json对象时:{【id,name】} 可以用Map获取

  1. @Autowired
  2. private AccomodationService accomodationService;
  3. @RequestMapping(value = "/update")
  4. @ResponseBody
  5. public String updateAttr(@RequestBody Map<String, String> map) {
  6. if(map.containsKey("id"){
  7. Integer id = Integer.parseInt(map.get("id"));
  8. }
  9. if(map.containsKey("name"){
  10. String objname = map.get("name").toString();
  11. }
  12. // 操作 ...
  13. return "success";
  14. }

4、以List接收
当前端传来这样一个json数组:[{id,name},{id,name},{id,name},…]时,用List接收

  1. @Autowired
  2. private AccomodationService accomodationService;
  3. @RequestMapping(value = "/update")
  4. @ResponseBody
  5. public String updateAttr(@RequestBody List<Accomodation> list) {
  6. for(Accomodation accomodation:list){
  7. System.out.println(accomodation.toString());
  8. }
  9. return "success";
  10. }

补充4
SpringMVC接收List型参数
1、controller

  1. @RequestMapping("/postList")
  2. @ResponseBody
  3. public String postList(@RequestBody List<TestL> testL){
  4. System.out.println(testL);
  5. return null;
  6. }

注意:参数前面必须有注解 @RequestBody

2、ajax请求

  1. var testList=[];
  2. var user={};
  3. user.id=1;
  4. user.name='jack';
  5. testList.push(user);
  6. var user2={};
  7. user2.id=2;
  8. user2.name='tom';
  9. testList.push(user2);
  10. $.ajax({
  11. // headers必须添加,否则会报415错误
  12. headers: {
  13. 'Accept': 'application/json',
  14. 'Content-Type': 'application/json'
  15. },
  16. type: 'POST',
  17. dataType: "json", //表示返回值类型,不必须
  18. data: JSON.stringify(testList),
  19. url: '/test/postList',
  20. success: function(){
  21. alert('success');
  22. }
  23. });

注意点:
1、参数是数组类型

2、传入data时,转换 JSON.stringify(testList)

3、必须有

  1. headers: {
  2.   'Accept': 'application/json',
  3.   'Content-Type': 'application/json'
  4.         }

最后再看下TestL类,没有特别之处(不用包装)。

  1. public class TestL {
  2. private Integer id;
  3. private String name;
  4. public Integer getId() {
  5. return id;
  6. }
  7. public void setId(Integer id) {
  8. this.id = id;
  9. }
  10. public String getName() {
  11. return name;
  12. }
  13. public void setName(String name) {
  14. this.name = name;
  15. }
  16. }
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号