2016-09-03 4 views
3

У меня есть XSD, из которого я хочу поддерживать сериализацию/десериализацию форматов данных JSON и XML.Xml serialization JAXB vs Jackson-dataformat-xml?

Я сгенерировал классы модели с помощью утилиты xjc.

Итак, теперь я обрабатываю данные JSON, используя библиотеку Jackson JSON.

Я не могу изменить мои Java-классы, так что я настроен ObjectMapper с Mix-In annotations и другими функциями, таким как PropertyNamingStrategy (изменением имен полей), SerializationFeature.WRAP_ROOT_VALUE обеспечить конфигурации над моим serilaization с помощью кода.

Теперь я хочу сделать то же самое с процессом сериализации XML.

Я прочитал онлайн для различных вариантов:

  1. JAXB
  2. библиотека Джексон + Джексона-DataFormat-xml.jar
  3. XStream

, который является наиболее подходящим для моего случая (не может редактировать мои POJO с аннотациями, разрешены только конфигурации кода)?

ответ

2

Я голосую за ответ # 2: используя Jackson-dataformat-xml. Мы были в аналогичной ситуации и обнаружили, что сериализация в XML через Джексон была проще, чем ожидалось. Это связано с тем, что XmlMapper расширяет ObjectMapper, поэтому все наши изменения конфигурации (mix-ins, используя JavaTimeModule и т. Д.) Можно было непосредственно применить к XmlMapper, и они просто сработали.

Вы уже настроили Jackson для вывода своих данных по мере необходимости, чтобы выполнить трудную часть. Я рекомендую использовать усилия, которые вы уже вложили и собираетесь с помощью Jackson-dataformat-xml.