编组时根据条件忽略字段

ignore field based on condition while marshalling

下面的class需要编组到xml。

class A {
    @XmlElement
    private boolean readFlag;

    // ... and some other fields
}

但是,readFlag 应该 在返回的 xml 中, 在某些条件下 。我不能使用 @XmlTransient,因为那样总是会漏掉它。

提前致谢。

您可以做的一件事是使用 Boolean 包装器 class 并将字段的值设置为 null 如果您不想对其进行编组 - null 字段默认被忽略。

如果您使用 EclipseLink/MOXy 作为 JAXB 实现,您还可以使用它的对象图功能,有关这方面的文章列表,请参阅 here