Вопрос

Каждый раз, когда я искал что-то о том, как сериализовать XML, я нашел сериализаторы бобов. Похоже, что все должно быть объявлено как имущество, которое побеждает мою цель. Я хочу сериализовать сложные иерархии (пока они не доберутся до примитивов, конечно) в XML, начните с (сказать) словарь или список в качестве родительского объекта.

Какие варианты есть для автоматической сериализации XML?

Я нашел несколько ссылок на JAXB с 2004 года, это все еще путь к работе?

Это было полезно?

Решение

Попробуйте Xstream. библиотека. Он легко сериализует любую комплексную иерархию объекта, которую вы можете бросить на нее.

Другие советы

У меня было много успеха с JAXB, особенно при использовании поддержки для него в NetBeans. Я знаю, на самом деле он поддерживает списки. Я не пробовал это с картами, но я подозреваю, что это работает. Если ничего другого, просто сделайте простой фасоль, который содержит список, и пусть это будет сериализованный боб.

Вы можете использовать стандартный java.bean.XMLEncoder / Decoder Классы для сериализации коллекций, поскольку механизм позволяет вызывать методы через XML. Выходной вид что-то подобно:

<object class="java.util.ArrayList">
  <void method="add">
    <string>Hello</string>
  </void>
  <void method="add">
    <string>World</string>
  </void>
</object>

Конечно, это имеет слабости; Например, вы не можете легко сериализовать Collections.emptyXXXX() Но есть обходные пути. Но потому что все работает в соответствии с общедоступные API Из классов постоянная форма XML устойчива к изменениям схемы.

Я нашел это очень полезным постоянным механизмом для объектов Java.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top