【发布时间】:2017-10-18 22:38:02
【问题描述】:
所以我有一个包含这个方法的 Controller 类:
@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"
}
}
现在它没有抛出任何错误。相反,它根本没有将该属性映射到任何东西。有没有我可以利用的注释可以快速实现?谢谢。
【问题讨论】:
-
假设您参考此example 并尝试使用它建议的方法。
-
你在使用@JsonIgnoreProperties注解吗?
-
如果你在
MyRequestClass类上使用@JsonIgnoreProprties,那么它不会抛出任何异常。如果你删除它,它会抛出一个异常 -
@JayanandRaghuwanshi 不,我不是
-
@pvpkiran 没有使用该注释。我编辑了我的帖子以包含我当前使用的注释。
标签: java json spring spring-mvc jackson