本指南来自XStream-two-minute-tutorial。本指南旨在简单给出使用XStream转换对象到XML或者将XML转换成对象。
1,创建一个需要序列化的对象
下面是一个简单的类,将使用XStream把该类转换成XML再转转换成对象。
public class Person {
private String firstname;
private String lastname;
private PhoneNumber phone;
private PhoneNumber fax;
// ... constructors and methods
}
public class PhoneNumber {
private int code;
private String number;
// ... constructors and methods
}
注意这些类都是private的。XStream不在意属性的有效范围,Accessors和构造方法也不是必须的。
2,初始化XStream
首先得到XStream类的实例:
XStream xstream=new XStream();
在默认的构造方法下,你需要xstream-[version].jar和xpp3-[version].jar两个包。如果你不需要xpp3,你可以使用标准的JAXP DOM来解析XML,则需要:
XStream xstream=new XStream(new DomDriver());
为了使输出的XML更具有可读性,我们可以为XML输出对象增加别名:
xstream.alias("person", Person.class);
xstream.alias("phonenumber", PhoneNumber.class);
注意,别名只是为了让XML文件更具可读性,不是必须的。
3,序列化对象到XML
下面创建一个Person实体:
Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
并将它序列化到XML:
String xml = xstream.toXML(joe);
输出的XML会是:
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
OK,就这么简单。
4,将XML转换成对象:
将生成的XML文件转换成对象只需要:
Person newJoe = (Person)xstream.fromXML(xml);
That's all。