Hy,
我有什么:
包含当前值的地图
{ “名字”:“塞德里克”, “姓”:“MySurname”, }
公共类myPojo
@JsonProperty(required = true) private String name;
@JsonProperty(required = true) private String surname;
@JsonProperty(required = true) private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
如果地图中的一个字段未满足POJO,我想要的是从Map转换为POJO失败(抛出异常)。
它似乎不适用于使用DeserializationFeature的任何类型的配置。我试图调整所有与空字段有关的配置
示例:
objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, false)
objectMapper.configure(DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES, true);
这应该抛出异常,但它不会:
MyPojo myPojo = MAPPER.convertValue(action.getParams(), MyPojo.class);
如果地图中缺少年龄字段且POJO需要,我是如何让它在转换期间抛出异常的?
答案 0 :(得分:2)
Jackson不支持验证(它明确超出范围),因此您需要在反序列化后单独验证,例如使用Bean Validation实现(如Hibernate Validator)。