我有一个非常简单的REST API项目,使用Spring Boot 1.5.7和Jackson 2.8。
问题
如果请求中存在未知字段,我希望杰克逊抱怨并提出异常。虽然我没有设置任何告诉它忽略它们的东西,但它只是忽略它而我不知道为什么。
请求:
{
"appId":1,
"version":"1.0",
"status":true,
"locked":false,
"field": "it is ignored, but it must not be"
}
Requet方法
@PutMapping
public ResponseEntity<?> updateAppToggle(@RequestBody AppToggleUpdateRequest request) {
AppToggle updatedAppToggle = service.update(request);
return new ResponseEntity<AppToggleResponse>
(AppToggleResponse.fillResponse(updatedAppToggle), HttpStatus.OK);
}
请求类
@Data
public class AppToggleUpdateRequest {
@NotNull
@Getter
private Long appId;
@NotNull
@Getter
private String version;
private Boolean status;
private Boolean locked;
}
我的application.properties不包含任何特殊内容,只包含数据源和H2内存数据库的一些内容。
我真的不知道发生了什么。任何帮助都会得到真正的赞赏。
答案 0 :(得分:1)
我修复了我的应用程序,将以下内容添加到application.properties文件中:
spring.jackson.deserialization.FAIL_ON_UNKNOWN_PROPERTIES=true
答案 1 :(得分:0)
你试过这个:
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class AppToggleUpdateRequest { .. }