3

在通过 JAXB 解组时,Jersey 似乎有一组预先确定的 JSON 空值默认值:String => "", Integer => 0, ... 无论如何可以通过配置或注释轻松控制这些值?

使用 Jersey 的 POJO 映射我得到了我想要的,即将 JSON null 映射到 Java null,但由于其他原因,我们确实需要使用 JAXB。

看起来这应该很简单,但是我正在画一个空白。

谢谢。

4

1 回答 1

0

注意: 我是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
}

了解更多信息

泽西岛一体化

于 2012-11-20T21:14:59.927 回答