【发布时间】:2017-07-20 06:44:44
【问题描述】:
考虑以下 POJO:
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
@JsonInclude(content=Include.NON_NULL)
public class User {
@JsonProperty(required=true)
private String username;
private String dob;
private String email;
// ... (getters and setters)
}
考虑上述 pojo 的以下示例 JSON:
{
"username": "foo",
"email": "foo@bar.com",
"dob": "12/21/1994"
}
如果我将一个字段指定为null,它将在序列化发生时被忽略。
提出我的问题,当必填字段为 null 时,有没有办法停止序列化(抛出异常),因为目前 Jackson 将 null 视为一个值,因此,这不违反@JsonProperty(required=true)指定的合约
我需要 username 字段始终出现在我的 json 中。
我尝试过将@NotNull 与javax.validation:validation-api 一起使用,但这似乎不起作用。
这是一个 spring-boot 1.5.2 应用程序。
附言
请随时建议其他可用的 API 或编辑问题以使其更好。
【问题讨论】:
标签: java json serialization jackson