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

Особенности XStream использует рефлексию для исследования структуры объекта в процессе выполнения программы, и не требует внесения изменений в сам объект. Библиотека позволяет сериализовать приватные, а также, объявленные как 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"/> <list reference=".."/> </list>

Лицензирование XStream является свободным ПО, распространяемым с использованием лицензии BSD типа.

Использование Atlassian ConfluenceXstream references Apache Muse

Примечания

Ссылки Сайт проекта

Категория:Java Категория:Библиотеки Java Категория:Свободные библиотеки программ