1. 程式人生 > 實用技巧 >SpringMVC接收json物件

SpringMVC接收json物件

SpringMVC接收json物件

前端傳的資料是json資料,後端如何接收呢?

1、以RequestParam接收

前端傳來的是json資料不多時:[id:id],可以直接用@RequestParam來獲取值

@Autowired
private AccomodationService accomodationService;

@RequestMapping(value = "/update")
@ResponseBody
public String updateAttr(@RequestParam ("id") int id) {
    int res=accomodationService.deleteData(id);
    return "success";
}

2、以實體類方式接收

前端傳來的是一個json物件時:{【id,name】},可以用實體類直接進行自動繫結

@Autowired
private AccomodationService accomodationService;

@RequestMapping(value = "/add")
@ResponseBody
public String addObj(@RequestBody Accomodation accomodation) {
    this.accomodationService.insert(accomodation);
    return "success";
    }
}

3、以Map接收

前端傳來的是一個json物件時:{【id,name】},可以用Map來獲取

@Autowired
private AccomodationService accomodationService;

@RequestMapping(value = "/update")
@ResponseBody
public String updateAttr(@RequestBody Map<String, String> map) {
    if(map.containsKey("id"){
        Integer id = Integer.parseInt(map.get("id"));
    }
    if(map.containsKey("name"){
        String objname = map.get("name").toString();
    }
    // 操作 ...
    return "success";
}

4、以List接收

當前端傳來這樣一個json陣列:[{id,name},{id,name},{id,name},...]時,用List接收

需要注意點:引數前面必須有註解 @RequestBody

@Autowired
private AccomodationService accomodationService;

@RequestMapping(value = "/update")
@ResponseBody
public String updateAttr(@RequestBody List<Accomodation> list) {
    for(Accomodation accomodation:list){
        System.out.println(accomodation.toString());
    }
    return "success";
}