1 基本介绍
1.1 前言
XStream 是一个轻量级的、简单易用的开放源代码 Java 库,用于将 Java对象序列化为 XML 或者再转换回来。而且 XStream 还能将 java 对象转成其它格式,比如 JSon。
官方上的 XStream 特点:
使用简单
不需要配置映射
速度快,占用内存小
生成的 XML 文件简洁
不需要修改序列化对象的类型
支持类嵌套
详细的错误日志
可转成其它格式
XStream 相比其它框架有如下的优点:
XStream 不关心序列化/逆序列化的类的字段的可见性。
序列化/逆序列化类的字段不需要 getter 和 setter 方法。
序列化/逆序列化的类不需要有默认构造函数。
2 安装和使用
2.1 下载
XStream 的网站 http://xstream.codehaus.org/download.html 上面可以下载到各种版本。目前用最新版本是 1.4.1,下载这个版本即可。
2.2 安装
XStream 的安装方法比较简单,将 xstream-1.4.1.jar 以及 kxml2-2.3.0.jar放置到类路径下面即可使用。如下图所示:
3 开始一个例子
3.1 新建一个空的 java project 工程
通过 eclipse 向导新建一个 Java Project 工程,并将上面提的两个类添加到类路径下。工程如下:
3.2 编写 Java 后台类,代码如下
新建一个 cn 的 package,然后在 cn 下面新建两个 Java 类,Person 和PhoneNumber,代码分别如下:
Person.java
package cn;
public class Person {
private String firstname;
private String lastname;
private PhoneNumber phone;
private PhoneNumber fax;
public Person(String firstName, String lastName) {
this.firstname = firstName;
this.lastname = lastName;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public PhoneNumber getPhone() {
return phone;
}
public void setPhone(PhoneNumber phone) {
this.phone = phone;
}
public PhoneNumber getFax() {
return fax;
}
public void setFax(PhoneNumber fax) {
this.fax = fax;
}
}
PhoneNumber.java
package cn;
public class PhoneNumber {
private int code;
private String number;
public PhoneNumber(int code, String number) {
this.code = code;
this.number = number;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
以上是两个很普通的 Java 对象。下面将写测试代码,将一个 Person 对象转成
xml;然后再从 xml 转成 Java 对象。
在 cn 包下面建立一个 Main.java,代码如下:
package cn;
import com.thoughtworks.xstream.XStream;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
XStream xstream = new XStream();
xstream.alias("person", Person.class);
xstream.alias("phonenumber", PhoneNumber.class);
Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
String xml = xstream.toXML(joe);
System.out.println(xml);
Person newJoe = (Person)xstream.fromXML(xml);
System.out.println(newJoe.getFirstname());
}
}
3.3 运行测试类
运行上面的 Main.java 类,输出结果如下:
3.4 代码解析
下面主要对 Main.java 中的 main 方法进行详细地解析.
XStream xstream = new XStream();
直接实例化一个 XStream 对象,不用任何参数。这个时候 XSteam 内部会使用 KXml2 的解析工具。也就是上面添加的 kxml2-2.3.0.jar 包。
如果不需要使用这个包的话,可以用 JAXP 的包等。例如:
XStream xstream = new XStream(new DomDriver());
XStream xstream = new XStream(new StaxDriver());
继续下面的代码:
xstream.alias("person", Person.class);
xstream.alias("phonenumber", PhoneNumber.class);
这两句表示对于 xml 中的每个结点,所映射的 Java 类。也就是 person 结点映射到了 Person 类;而 phonenumber 则映射到了 PhoneNumber 类。
下面是实例化对象之类的,比较简单,我们跳过去不将。直接进入:
String xml = xstream.toXML(joe);
这个就是核心所在,即将一个 java 对象转成了 xml。
【下载地址】
百度网盘链接:https://pan.baidu.com/s/1zgjk-LXZOK33Gb0R1oGXHw
提取码:25et
相关文章
使用-JFreeChart来创建基于web的图表
XStream使用文档
WebService发布过程及常见问题
webpack实战入门进阶调优分享
weblogic调优参数及监控指标
weblogic节点管理
weblogic管理控制台概述
weblogic-部署和启动
WebLogic-Server-性能及调优-调优-Java-虚拟机
Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
Velocity 用户手册是帮助页面设计者和内容提供者认识 Velocity 和其简单而功能强大的脚本语言――Velocity 模板语言(VTL)。在手册上的许多例子,都是用 Velocity 插入动态的内容到网页上,但是所有的 VLT 例子都能应用到其他的页面和模板中。
FlashFXP绿色版网盘下载,附激活教程 1192
FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具
Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 947
firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ
navicat for mysql中文绿色版网盘下载 1064
Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq
火车头采集器(旗舰版)绿色版网盘下载 1428
火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA
Photoshop(CS-2015-2023)绿色中文版软件下载 1593
安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64