如果我尝试反序列化从对象类中缺少字段的JSON字符串,则在创建对象时该字段设置为null。我需要杰克逊在发生这种情况时抛出异常,所以我不必在每个对象中实现assertNotNullFields()
方法;即JSON字符串输入必须已定义类中的所有字段或抛出JsonProcessingException
。
对象映射器配置:
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE);
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
JSON对象:
public class LogInUser {
public String identifier, password;
public LogInUser() {}
}
根据我的配置,这可能吗?
答案 0 :(得分:1)
您可以尝试在JsonCreator
课程中使用LogInUser
,如上所述here。当你引入你在问题中提出的代码时,它看起来像这样:
public class LogInUser {
@JsonCreator
public LogInUser(@JsonProperty(value = "identifier", required = true) String identifier, @JsonProperty(value = "password", required = true) String password) {
this.identifier = identifier;
this.password = password;
}
public String identifier, password;
public LogInUser() {}
}
当一个或多个值为null时,它应抛出异常。