所以我正在考虑为我的 json View 添加约束。
我有和这个类似的课
public class Person {
@JsonProperty(required = true)
@NotNull
@Size(max = 50)
private String name;
}
我应该同时保留 @JsonProperty(required = true)
和 @NotNull
还是应该删除一个,为什么?
需要说明的是,Jackson 2.6 @JsonProperty(required = true)
会抛出 exception .
我正在使用 springfox-swagger,当我删除 @JsonProperty(required = true)
时,swagger 中的字段被标记为可选,但事实并非如此。
我只是想知道在这种情况下的最佳实践。
最佳答案
使用 @JsonProperty
时在字段或方法上将 required
设置为 true
时,Jackson 将不会执行任何验证。查看documentation了解更多详情。
出于验证目的,请考虑 @NotNull
来自 Bean Validation(执行验证需要验证提供程序,例如 Hibernate Validator)。
使用 Swagger,您还可以使用 @ApiModelProperty
并将 required
设置为 true
以指示字段是必填的。
关于java - 你应该在同一个对象中使用@NotNull 和@JsonProperty(required),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45867473/