如何通过JAXB / XJC向XSD生成的POJO添加Jackson注释?

时间:2014-10-07 02:53:19

标签: json jaxb jersey jackson

我使用JAXB从XSD生成POJO。我使用Jersey / Jackson将POJO序列化为JSON。对于整个项目,我创建了一个设置Inclusion.NON_NULL的ObjectMapper。但对于一个特定的序列化类,我想包含空值。我知道,我必须在POJO上使用Inclusion.ALWAYS来覆盖ObjectMapper,但是我使用的POJO是从XSD生成的。

有没有办法在编组期间将杰克逊的注释@JsonSerialize(include=Inclusion.ALWAYS)添加到该特定的POJO?

http://pastebin.com/a2Gvw19U

1 个答案:

答案 0 :(得分:3)

如果您只想添加一个注释,请考虑使用我的JAXB2 Annotate Plugin。例如,请参阅this example,特别是this bindings file

在您的情况下,绑定看起来像:

<jaxb:bindings node="xs:complexType[@name='myPOJO']">
    <annox:annotate>
        @org.codehaus.jackson.map.annotate.JsonSerialize
            (include=org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion.ALWAYS)
    </annox:annotate>
</jaxb:bindings>

(未经测试,只是草图。)

几点提示:

  • 语法是Java,但您必须使用完全限定的类名。
  • Jackson JAR必须出现在XJC类路径中,否则您的注释将无法找到。

SO免责声明:我是上述插件的作者。