Сериализация графа объектов

287
19 февраля 2017, 09:23

Только только начал изучать сериализацию и сериализацию в xml.

Предположим у нас есть класс Company. У компании есть поля parent( тоже объект класса Company) и дочки(тоже объекты класса Company). У родителей и дочек точно также могут быть свои родители и дочки). И так мы созданем несколько компаний и помещаем их в ArrayList. Дальше вызваем сериализатор в xml файл. Получается что при сериализации каждого объекта из листа сериализуется весь граф объект, то есть сериализуем первый элемент, у него вызывается сериализация родителя и дочек, у родителя и дочек также вызвается сериализация своего родителя и дочек.

То есть получается, что при сериализации каждого элелемента сериализуется весь граф объектов. Вопрос так и должно быть?

Answer 1

Чтобы избежать бесконечно вложенной сериализации и циклических ссылок, нужно соответствующим образом настроить сериализатор. В таком случае он будет не вкладывать элементы, описывающие ваши объекты, друг в друга, а создаст ссылки по какому-то идентификатору.

Конкретная реализация зависит от того, какой сериализатор вы используете:

  • в JAXB это делается через @XmlIDREF,

  • в XStream - через setMode(XPATH_RELATIVE_REFERENCES), setMode(XPATH_ABSOLUTE_REFERENCES) и setMode(ID_REFERENCES).

READ ALSO
Компоненты не отображаются в палитре

Компоненты не отображаются в палитре

Первый раз использую среду netbeansМоя задача создать jar file из предыдущего проекта

365
Вывод в виджет Activity из другого класса

Вывод в виджет Activity из другого класса

Помогите с пониманием вопроса

422
Как удалить класс при помощи Jsoup?

Как удалить класс при помощи Jsoup?

Имеется вот такой код html:

331
Асинхронный запрос Android

Асинхронный запрос Android

Доброй ночи, проблема такаяЕсть activity и есть ApiController нужно из активити выполнить метод в апиконтроллере, который отправит post запрос на сервер,...

584