XStream使用文档

亚瑟王 亚瑟王 2022-04-27 435 Java

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放置到类路径下面即可使用。如下图所示:

XStream使用文档

3 开始一个例子

3.1 新建一个空的 java project 工程

通过 eclipse 向导新建一个 Java Project 工程,并将上面提的两个类添加到类路径下。工程如下:

XStream使用文档

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 类,输出结果如下:

XStream使用文档

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的图表

使用-JFreeChart来创建基于web的图表

XStream使用文档

XStream使用文档

WebService发布过程及常见问题

WebService发布过程及常见问题

webpack实战入门进阶调优分享

webpack实战入门进阶调优分享

weblogic调优参数及监控指标

weblogic调优参数及监控指标

weblogic节点管理

weblogic节点管理

weblogic管理控制台概述

weblogic管理控制台概述

weblogic-部署和启动

weblogic-部署和启动

WebLogic-Server-性能及调优-调优-Java-虚拟机

Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。

Velocity用户教程

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。

Velocity用户手册

Velocity 用户手册是帮助页面设计者和内容提供者认识 Velocity 和其简单而功能强大的脚本语言――Velocity 模板语言(VTL)。在手册上的许多例子,都是用 Velocity 插入动态的内容到网页上,但是所有的 VLT 例子都能应用到其他的页面和模板中。

知之

知之平台是全球领先的知识付费平台。提供各个领域的项目实战经验分享,提供优质的行业解决方案信息,来帮助您的工作和学习

使用指南 建议意见 用户协议 友情链接 隐私政策 Powered by NOOU ©2020 知之