在通过 JAXB 解组时,Jersey 似乎有一组预先确定的 JSON 空值默认值:String => "", Integer => 0, ... 无论如何可以通过配置或注释轻松控制这些值?
使用 Jersey 的 POJO 映射我得到了我想要的,即将 JSON null 映射到 Java null,但由于其他原因,我们确实需要使用 JAXB。
看起来这应该很简单,但是我正在画一个空白。
谢谢。
注意: 我是EclipseLink JAXB (MOXy)负责人,也是JAXB (JSR-222)专家组的成员。
JAXB (JSR-222) 规范不包括 JSON 绑定,因此您遇到的是 Jersey 代码与 JAXB 参考实现交互,产生一些奇怪的结果 wrt null 处理。EclipseLink MOXy 是一个符合 JAXB 的实现,它还提供具有更自然的 null 处理的 JSON 绑定。
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {
private String firstName;
@XmlElement(nillable=true)
private String lastName;
}
如果这被编组为 JSON,结果将如下所示。Null 值不会编组为 JSON,除非它们带有注释@XmlElement(nillable=true)
:
{
lastName: null
}
了解更多信息
泽西岛一体化