首先到http://xstream.codehaus.org下载XStream的最新版本,到目前为止的最新版本为<chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on"></chsdate>1.1.2,主要改变为提供了一些JDK1.5的enum类型支持。下载后,解压,将xstream-1.1.2.jar与xpp3_min-1.1.3.4.I.jar复制到项目的lib中,此时就可以使用XStream了。Xpp3为XStream提供的一个很有效率的XML pull-parser实现,推荐使用,可以提高解析的效率。
一、首先,创建要转换的Java类:
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不限制你的属性的可见性,默认所有属性都会进行转换;XStream不要求你必须要有setter和getter方法,也不要求你要有一个默认的类构造方法。
二、初始化XStream
使用以下的语句进行初始化:
XStream xstream = new XStream();
默认采用Xpp3库,如果你不想使用Xpp3这个库,你也可以使用一个标准的JAXP DOM解析器,可以采用以下语句进行初始化:
XStream xstream = new XStream(new DOMDriver()); //不需要Xpp3库
此xstream实例,为线程安全的,可以供多个线程进行调用,共享使用。
三、注册要转换的类的别名
初始化XStream后,我们要将要转换的类注册到xstream中,告诉XStream,有哪些类要进行XML转换,注册采用以下的语句:
xstream.alias(“person”, Person.class);
xstream.alias(“phonenumber”, PhoneNumber.class);
当然,这一步不是必须的,如果不进行注册的话,XStream默认会在转换时,将对应类全限定名也加入XML文件中,如com.test.Person,这如果在数据量大的时候,会使生成的XML文件增大不少。
四、将对象序列化为XML
到这一步,我们就可以将一个Java对象序列化为一个XML文件了,我们先声明一个Person对象,然后加入两条电话号码对象:
Person person = new Person("Chen", "Tao");
joe.setPhone(new PhoneNumber(123, "1234-456");
joe.setFax(new PhoneNumber(123, "9999-999");
接下来,我们将此Person对象转换为XML字符串:
String xml = xstream.toXML(person);
生成的XML字符串为:
<person></person>
<<person>
<firstname>Chen</firstname>
<lastname>Tao</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>>
就这么简单,什么映射文件都不用写,默认XStream已经帮我们做好了。
五、从XML反序列化出对象
而从一个XML文件中反序列出一个对象也同样非常简单,我们看一下下面的代码:
Person newPerson = (Person) xstream.fromXML(xml);
相关推荐
使用XStream 把 Java 对象序列化为 XML~~~~~~~~~~~~~~~~~
创建XSteam对象的方式很简单,只需要new XStream()即可。 Java到xml,用toXML()方法。 Xml到Java,用fromXML()方法。 在没有任何设置默认情况下,java到xml的映射,是java成员名对应xml的元素名,java类的全名对应...
SSH2 整合开发,实现简单的增删改查,使用数据库mysql ,附带Google的Gson和Xstream 开发,ajax,简单易懂,仅供学习使用
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用...
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用...
使用xstream技术进行类与xml相互转换,简单的应用,快速上手。
由于 Struts 2 的 REST 插件还需要将提供 XML、JSON 格式的数据,因此还需要将 xstream-1.2.2.jar、json-lib-2.1.jar、ezmorph-1.0.3.jar 以及 Jakarta-Common 相关 JAR 包复制到 Web 应用的 WEB-INF/lib 路径下。...
第四篇 Android应用开发案例 第13章 Ksoap2 13.1 SOAP协议 13.1.1 请求 13.1.2 响应 13.2 WSDL介绍 13.3 Ksoap2应用——天气预报 13.4 Ksoap2参数类型 13.4.1 CXF框架的Web Service 13.4.2 Android端开发 13.5 Base...
Hedgehog是用于简单分布式计算的Java库。 您的代码实例化服务器,发布作业,并在客户端返回结果时得到通知。 客户不必具有工作类别。 刺猬使用JmDNS,XStream,XML-RPC和Jetty。