Spring:@RequestBody和JSON出现错误400



我有以下代码部分。当我发送HTTP请求时,我收到一个与carCoordinates字段相关的错误400(如果我删除它,一切都很好(。它应该是一个双人列表。

此外,当我在不更改getter名称的情况下将名称carCoordinates更改为carCoordinates时,请求得到了很好的接收,但我无法获得数据,因为getter没有与对象链接(null(。如果我将getter名称更改为getCarcoordinates以匹配字段,它将不再工作。有什么想法为什么它不起作用吗?

CarEvent.java:

Public class CarEvent {
@JsonProperty("carCoordinates")
protected List carCoordinates;
...
public void setCarCoordinates(Coordinate c) {
...
}

public List getCarCoordinates() {
return CarCoordinates;
}
}

发送的JSON是:

{
"id": [006001556, 631016236, 125899724],
"speed": "0",
"carCoordinates": [56.477369, 26.64477, 56.466177, 26.651258, 80.545048, 50.614582],
"num": "5"
}

请求的服务器类为:

@RequestMapping(method = RequestMethod.POST, value = "/car-action", produces = "application/json;charset=UTF-8")
@ResponseBody
public String CarAction(@RequestBody CarEvent requestBody, @RequestHeader HttpHeaders httpHeaders) {
...
}

问题可能是您的setter方法。您的字段类型为List,但是setter接受了Coordinate的Object。根据您的json请求,我认为应该是:

public void setCarCoordinates(List c) {
this.carCoordinates = c;
}

您的CarEvent
具有参数错误的setter方法
创建一个类Coordinate并扩展到List或更新如下:

public void setCarCoordinates(List cordinates) {
...
}

最新更新