我有一个控制器类,其中包含这个方法:
@RequestMapping(value = "/x", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<MyRepsonseClass> get(
@ApiParam(value = "x", required = true) @Valid @RequestBody MyRequestClass request
) throws IOException {
//yada yada my logic here
return something;
}
Json请求会自动映射到MyRequestClass.java中。这是该类的样子:
@lombok.ToString
@lombok.Getter
@lombok.Setter
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@ApiModel(description = "description")
public class MyRequestClass {
private List<SomeClass> attribute1;
private SomeOtherClass attribute2;
private YetAnotherClass attribute3;
}
这是一个有效的JSON请求示例:
{
"attribute1": [
{
"key":"value"
}
],
"attribute3": {
"key":"value"
}
}
现在,我的要求是当请求中包含一个在 MyRequestClass.java 中不存在的属性时返回一个错误消息。
因此:
{
"attribute1": [
{
"key":"value"
}
],
"attribute_that_doesnt_exist": {
"key":"value"
}
}
目前它没有抛出任何错误。相反,它只是没有将该属性映射到任何东西上。我能使用哪些注释来快速实现这个功能呢?谢谢。
MyRequestClass
类上使用了@JsonIgnoreProperties
,那么它不会抛出任何异常。如果你将其移除,则会抛出异常。 - pvpkiran