我有一个简单的控制器:
@RequestMapping(method = { RequestMethod.POST })
public ResponseEntity<MyResponse> print(@RequestBody final RequestModel request) throw ApiException {
return null;
}
在我的RequestModel中:
class RequestModel {
private String name;
private CustomData data;
}
CustomData:
class CustomData {
private String data;
}
当我在不带“数据”字段的情况下发出POST请求时,它可以工作。但是,如果我添加“数据”字段,则会得到400,则客户端发送的请求在语法上是不正确的。
答案 0 :(得分:0)
O不知道是否编写了所有代码,但是tou应该实现可序列化并编写setter和getter。
但是,回答您的问题时,您应该使用@JsonProperty注释字段以指定所需的标志。
答案 1 :(得分:0)
您发布的JSON应该是这样的:
{
"name":"Luke",
"data": {
"data":"I am your father"
}
}
OBS:如果您使用的是Postman,请设置标题:key:内容类型,值:application / json
您应指定一个端点: 示例:
@PostMapping("/data")
代替
@RequestMapping(method = { RequestMethod.POST })
如果您使用的是默认端口,请重试以下帖子:
http://localhost:8080/data
OBS:RequestModel和CustomerData必须具有getter和setter。