我有5个字段,我的用户可以在以后填写(姓名,昵称,电子邮件,生日,教育),我希望这个名称,电子邮件和生日是强制性的,所以必须写一些东西,我和#39;我找到了通过@JsonIgnoreProperties
注释
答案 0 :(得分:3)
除了使用早期答案中提到的优秀Bean Validation API之外,Jackson 2.7还增加了对确保所需属性的有限支持,只要它们使用@JsonCreator
带注释的构造函数传递:
public class POJO {
@JsonCreator
public POJO(@JsonProperty(value="name", required=true) String name,
@JsonProperty(value="age", required=true) int age) {
...
}
在这种情况下,name
或age
的缺失值都会触发JsonMappingException
。
将来可能会为所有类型的属性添加类似的验证,但就目前而言(直到并包括Jackson 2.8),只有这样才能验证基于创建者的属性。
答案 1 :(得分:2)
我假设您使用的是杰克逊,因为您使用的是@JsonIgnoreProperties
。
杰克逊旨在将验证与反序列化JSON分开。因此,您需要使用Bean Validation来执行验证特定字段是否为空。
您需要使用@NotNull
注释,特别是您要强制使用的字段。