我有 JAXB/Jackson 编码问题。我有这样的注释
@XmlAttribute(name = "private")
protected Boolean mPrivate;
我希望如果
mPrivate
不存在此属性变量是 null
.如果输出是 XML,这可以正常工作。但是如果我切换到 JSON,使用 Jackson,输出是
xxxxxxx, "private":null, xxxxxxxx
任何人都知道为什么会发生这种情况以及如何解决它?提前致谢。
最佳答案
Jackson 与 JAXB 注释兼容。因此,JAXB 不支持 XmlAttributes 的默认值,因为在序列化为 XML 时,如果 value 为 null,则默认行为将它们排除在外。
有几个选项可以为 JSON 实现这一点。
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
setSerializationInclusion(Inclusion.NON_NULL);
...在 ObjectMapper 实例上。
关于jaxb - Jackson 编码(marshal) XMLAttribute 获取 "null"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17445310/