我有以下代码部分。当我发送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) {
...
}