java如何在SpringBoot中使用@RequestBody传递列表和单独的字符串
我已经写了这段代码,但是在JSON
中获得状态:400错误请求错误
@CrossOrigin
@PostMapping(value = "/retail/scorecard/addKPI", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
public @ResponseBody Object addKpi(@Valid @RequestParam List<KPIReq> kpiReqList,@RequestParam("goalId") String goalId,
HttpServletRequest req, HttpServletResponse res) throws RecordNotFoundException, Exception {
# 1 楼答案
Request参数实质上是将请求uri的一部分映射到一个对象。比如uri:
你可以像这样绘制地图:
与其将列表作为请求参数传递,不如尝试将其作为请求正文的一部分提供。复杂对象最好作为请求体发送。比如:
# 2 楼答案
你的错误是400个错误请求,这意味着你的函数有一个类型为X的对象,但没有收到它,你能尝试为你添加名称吗
列表的类型和id是Json还是XML
# 3 楼答案
使用
@Valid @RequestBody List<KPIReq> kpiReqList
作为列表。可能是json中的错误