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 типа.
Для улучшения этой статьи по информационным технологиям желательно:
|
На эту статью не ссылаются другие статьи Википедии. |