01 января 2008

Сериализация с помощью XStream. Часть 1

Сериализация с помощью XStream. Часть 1
XStream - это библиотека, которая позволяет очень легко преобразовывать объекты в XML и наоборот.
Итак, допустим у нас есть объект некоторого класса Круг (Circle) - это будет наш класс, который мы будем преобразовывать в ХМЛ (сериализировать).

class Circle{
private Point center;
private int R;
public Circle(Point c,int r){
this.center=c;
this.R=r;
}
//...
}

// вспомагательный класс
class Point{
private int x;
private int y;
public Point(int x, int y){
this.x=x;
this.y=y;
}
//...
}

Переходим к работе с библиотекой XStream. Для работі нам понадобятся два jar файла : xstream-[version].jar и xpp3-[version].jar. После подключения необходимых библиотек к проекту (скачать их можно на сайте указанном в конце статьи), необходимо указать в каком пакете она находится:

import com.thoughtworks.xstream.*;

Пеперь проведём её инициализацию. Для начала создаём объект класса XStream:

XStream xstream = new XStream();

Теперь надо указать соответствие между именами классов, которые будут преобразовыватся в ХМЛ и элементами ХМЛ.

xstream.alias("circle", Circle.class);
xstream.alias("point", Point.class);

Теперь переходим к сериализации.
Для начала создаём наш объект:

Circle crcl = new Circle(new Point(10,10),50);

Для того что - бы преобразовать его в ХМЛ, достаточно выполнить вызвать функцию toXML с нашим объектом в качестве параметра:

String xml_C = xstream.toXML(crcl);

В результате мы получаем хмл строку вида:

<circle>
<center>
<x>10</x>
<y>10</y>
</center>
<R>50</R>
</circle>



Для того что-бы воссоздать наш объект из ХМЛ, достаточно вызвать функцию fromXML:

Circle myCircle = (Circle)xstream.fromXML(xml_C);

В следующей части мы рассмотрим как библиотека XStream преобразовывает в ХМЛ масивы объектов.

ресурсы:
http://xstream.codehaus.org/

Комментариев нет: