Как добавить аннотации Джексона к POJO, сгенерированному из XSD JAXB/XJC?

Я генерирую POJO из XSD, используя JAXB. И я использую Джерси / Джексон для сериализации POJO в JSON. Для всего проекта я создал ObjectMapper, который имеет Inclusion.NON_NULL задавать. Но для одного конкретного класса сериализации я хочу включить нулевые значения. Я знаю, я должен использовать Inclusion.ALWAYS в POJO для переопределения ObjectMapper, но POJO, который я использую, генерируется из XSD.

Есть ли способ добавить аннотацию Джексона @JsonSerialize(include=Inclusion.ALWAYS) к этому конкретному POJO во время сортировки?

http://pastebin.com/a2Gvw19U

1 ответ

Если вы просто хотите добавить одну аннотацию, рассмотрите возможность использования моего плагина аннотаций JAXB2. См., Например, этот пример, а именно этот файл привязок.

В вашем случае привязки будут выглядеть примерно так:

<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, но вы должны использовать полные имена классов.
  • JAR Джексона должен присутствовать в пути к классам XJC, иначе ваши аннотации не будут найдены.

ТАК отказ от ответственности: я автор упомянутого плагина.

Другие вопросы по тегам