Это не официальный сайт wikipedia.org 01.01.2023

XStream — Википедия

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

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

ОсобенностиПравить

XStream использует рефлексию для исследования структуры объекта в процессе выполнения программы, и не требует внесения изменений в сам объект.[1] Библиотека позволяет сериализовать приватные, а также, объявленные как final, поля. Кроме этого, поддерживаются не публичные и вложенные классы.

При сериализации объекта выполняется построение его полного графа[en]*. При этом сохраняются все кросс-ссылки объекта.

К примеру, возьмем следующий класс 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 года.

СсылкиПравить