Как добавить аннотации Джексона к POJO, сгенерированному из XSD JAXB/XJC?
Я генерирую POJO из XSD, используя JAXB. И я использую Джерси / Джексон для сериализации POJO в JSON. Для всего проекта я создал ObjectMapper, который имеет Inclusion.NON_NULL
задавать. Но для одного конкретного класса сериализации я хочу включить нулевые значения. Я знаю, я должен использовать Inclusion.ALWAYS
в POJO для переопределения ObjectMapper, но POJO, который я использую, генерируется из XSD.
Есть ли способ добавить аннотацию Джексона @JsonSerialize(include=Inclusion.ALWAYS)
к этому конкретному POJO во время сортировки?
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, иначе ваши аннотации не будут найдены.
ТАК отказ от ответственности: я автор упомянутого плагина.