XStream
XStream | |
---|---|
Тип | Библиотека |
Разработчик | Codehaus |
Написана на | Java |
Операционная система | Кроссплатформенное программное обеспечение |
Аппаратная платформа | Java Virtual Machine |
Последняя версия | 1.4.20 (24 декабря, 2022 г.) |
Лицензия | BSD |
Сайт | x-stream.github.io |
XStream — Java библиотека классов для сериализации объектов в XML (или JSON) формат.
Особенности
XStream использует рефлексию для исследования структуры объекта в процессе выполнения программы, и не требует внесения изменений в сам объект.[1] Библиотека позволяет сериализовать приватные, а также, объявленные как final, поля. Кроме этого, поддерживаются не публичные и вложенные классы.
При сериализации объекта выполняется построение его полного графа[англ.]*. При этом сохраняются все кросс-ссылки объекта.
К примеру, возьмем следующий класс CD:
package com.thoughtworks.xstream; public class Cd { private String id; private Cd bonusCd; Cd(String id, Cd bonusCd) { this.id = id; this.bonusCd = bonusCd; } Cd(String id) { this.id = id; } public String getId() { return id; } public Cd getBonusCd() { return bonusCd; } }
Добавим несколько объектов этого типа в список и сериализуем то, что у нас получилось:
Cd bj = new Cd("basement_jaxx_singles"); Cd mr = new Cd("maria rita"); List<Cd> order = new ArrayList<Cd>(); order.add(mr); // добавим два раза один и тот же объект (две ссылки на один и тот же объект) order.add(bj); order.add(bj); // добавим в список сам список (закольцовывание) order.add(order); XStream xstream = new XStream(); xstream.alias("cd", Cd.class); System.out.println(xstream.toXML(order));
Если выполнить этот код с настройками XStream по умолчанию, то получится следующий XML документ:
<list> <cd> <id>maria rita</id> </cd> <cd> <id>basement_jaxx_singles</id> </cd> <cd reference="../cd[2]"/> <list reference=".."/> </list>
Лицензирование
XStream является свободным ПО, распространяемым с использованием лицензии BSD типа.
Использование
- Atlassian Confluence[2]
- Apache Muse[2]
Примечания
- ↑ Бангалор Р. Применение XStream для сериализации Java-объектов в XML (рус.). developerWorks Россия (5 октября 2009). Дата обращения: 17 сентября 2013. Архивировано 9 ноября 2012 года.
- ↑ 1 2 Xstream references Архивировано 28 декабря 2009 года.
Ссылки
- Сайт проекта