如何在 spring Restapi 的 json 请求中的未知字段上抛出错误

Maj*_*joR 5 spring spring-mvc jackson spring-boot spring-rest

我有一个 spring Rest api,它获取 json 数据并绑定到 pojo GetData。每当我收到未知字段时,它都不会失败或抛出任何异常。我的要求是当它接收到 json 数据中的未知字段时应该抛出错误。

public ResponseEntity<Error> saveLocation(@Valid @RequestBody GetData getdata,BindingResult bindingResults) {
Run Code Online (Sandbox Code Playgroud)

下面是我的 Pojo GetData

public class GetData{

@JsonProperty("deviceID")
@Pattern(regexp="^[\\p{Alnum}][-\\p{Alnum}\\p{L}]+[\\p{Alnum}]$",message = "Not a valid Device Id")
private String deviceID;


@JsonProperty("Coordinates")
@Pattern(regexp="^[\\p{Alnum}\\-][\\.\\,\\-\\_\\p{Alnum}\\p{L}\\s]+|",message = "Coordinates are not valid")
private String coordinates;}
Run Code Online (Sandbox Code Playgroud)

下面是我的 json 请求。

{
"deviceID" : "01dbd619-843b-4197-b954",
"Coordinates" : "12.984012,80.246712",
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我发送带有额外字段的请求,例如国家/地区。它不会抛出任何错误。

{
    "deviceID" : "01dbd619-843b-4197-b954",
    "Coordinates" : "12.984012,80.246712",
    "country" : "dsasa"
}
Run Code Online (Sandbox Code Playgroud)

请建议我如何在 json 请求中发送未知属性时出现错误

Eug*_*ene 2

您需要配置您的ObjectMapper以处理此类情况:

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
Run Code Online (Sandbox Code Playgroud)