XStream — Java библиотека классов для сериализации объектов в XML (или JSON) формат.

XStream
Тип Библиотека
Разработчик Codehaus
Написана на Java
Операционная система Кроссплатформенное программное обеспечение
Аппаратная платформа Java Virtual Machine
Последняя версия 1.4.20 (24 декабря, 2022 г.)
Лицензия BSD
Сайт x-stream.github.io

Особенности

править

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 типа.

Использование

править

Примечания

править
  1. Бангалор Р. Применение XStream для сериализации Java-объектов в XML. developerWorks Россия (5 октября 2009). Дата обращения: 17 сентября 2013. Архивировано 9 ноября 2012 года.
  2. 1 2 Xstream references Архивировано 28 декабря 2009 года.

Ссылки

править