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 типа.
Использование
Примечания
- ↑ Бангалор Р. Применение XStream для сериализации Java-объектов в XML. developerWorks Россия (5 октября 2009). Дата обращения: 17 сентября 2013. Архивировано 9 ноября 2012 года.
- ↑ 1 2 Xstream references Архивировано 28 декабря 2009 года.
Ссылки
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.