`
wangleifire
  • 浏览: 508962 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

XStream 入门教程

    博客分类:
  • JAVA
阅读更多

  这是一个关于XStream快速的介绍。快速浏览一下你会马上知道把一个对象转换到XML或是转换回来是多么的简单。你肯定会碰到下面的问题。

 

创建能够序列化的类

  这是一组简单的类。XStream能把这些类的实例转换到XML或是转换回来。

 

public   class  Person { 

 
private  String firstName;
 
private  String lastName;
 
private  PhoneNumber phonex;
 
private  PhoneNumber fax;
// 构造函数或是其他方法 


public   class  PhoneNumber { 

 
private   int  code;
 
private   int  number; 

// 构造函数或是其他方法
}

 

  :注意到这些都是私有变量。XStream不关心变量的作用域。不需要getter或是setter方法。并且,XStream不限定需要默认的构造函数。

 

实例化XStream

使用XStream,简单实例化XStream类:

 

XStream xStream  =   new  XStream(); 

 

 你需要xstream-[version].jar and xpp3-[version].jar在classpath中。XPP3是一个非常快的XML拉式转换器工具。如果你不想包含这个依赖,你可以使用标准的JAXP DOM转换器来代替。

 

XStream xStream  =   new  XStream( new  DomDriver()); // 不需要XPP3库 


:这个类的简单设计是为了实现通用操作的。为了实现更复杂的操作你可以选择自己创建出不同方式。

 

现在,为了使用XStream来更精简的输出XML,你可以为自定义的类创建别名到XML的元素名的映射。这是使用XStream唯一需要的映射的,甚至这个都是可选的。

 

xStream.alians( " person " ,Person. class ); 

 

:这是可选的一步。没有这步XStream也可以很好的起作用,但是XML元素的名字就会包含每个类的全称(包括包名),这将会使生成XML稍大。

 

序列号一个对象到XML

 让我们创建一个Person的实例并且填充它的变量域:

 

Person joe  =   new  Person( " Joe " , " Walnes " ); 

joe.setPhone(
new  PhoneNumber( 123 , " 1234-456 " )); 

joe.setFax(
new  PhoneNumber( 123 , " 9999-999 " )); 

 

现在转换到XML,你要做的是简单的调用XStream:

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 >  

 

非常简单,像创建XML一样。

 

从XML反序列化一个对象

 

从XML重新构造一个对象:

Person newJoe  =  (Person)xStream.fromXML(xml); 

 

XStream是多么的简单啊!

 

总结:

 

使用xStream.alias(String elementName, Class cls)为任何一个自定义类创建到类到元素的别名;

使用xStream.toXML(Object obj)转换对象到XML;

使用xStream.fromXML(String xml)转换XML到对象;

(附原文地址:http://xstream.codehaus.org/tutorial.html )

分享到:
评论

相关推荐

    xstream教程资料.rar

    在"XStream+技术指南.docx"中,你将找到丰富的实践示例,涵盖基础操作、复杂类型转换、安全配置等多个方面,帮助你更好地理解并运用XStream。 九、进阶话题 "XStream教程.rar"包含更高级的主题,如处理集合、数组、...

    开源软件包XStream及入门文档

    提供的文档`xsteam-tutorials.doc`应该是XStream的官方教程或用户指南,它通常会涵盖以下内容: 1. **快速入门**:简单的示例演示如何使用XStream进行XML与Java对象的转换。 2. **高级特性**:包括别名、字段映射、...

    Android中xml解析

    XPP3是一个XML Pull解析器,提供了一个高效的XML解析机制,为XStream提供解析XML的基础。 以下是如何在Android中使用XStream的一个简要示例: 1. 添加依赖:首先,将XStream库文件添加到项目的lib目录,并在...

    matlab教程 - 了解与LeCroy X-Stream COM对象服务器接口的MATLAB语法

    本教程旨在提供一个高层次的理解,帮助用户无须深入探究底层细节,就能编写出能够访问任意层次属性的代码。 1. MATLAB基础 MATLAB是一款强大的数学计算软件,它提供了丰富的工具箱和接口,能与其他应用程序进行集成...

    详解Spring batch 入门学习教程(附源码)

    详解 Spring Batch 入门学习教程 Spring Batch 是一个开源的批处理框架,执行一系列的任务。在 Spring Batch 中,一个 Job 是由许多 Step 组成的,而每一个 Step 又是由 READ-PROCESS-WRITE 任务或者单个 Task 组成...

    CXF资料宝典大全

    **cxf_hello**可能是CXF基础教程中的"Hello, World!"示例,这是一个典型的入门级练习,展示了如何使用CXF创建一个简单的服务并发布。这个示例会教你如何设置CXF的运行环境,编写服务接口和实现,以及如何启动和调用...

    dubbo-admin

    3. **xstream-1.4.1.jar**:XStream 是一个 Java 对象到 XML 反序列化库,可能在 dubbo-admin 中用于数据持久化或配置文件的读写。 4. **spring-beans-2.5.6.SEC03.jar, spring-context-2.5.6.SEC03.jar, spring-...

    Digimat Training_501.pdf

    Digimat平台由e-Xstream engineering公司开发,致力于通过其先进的算法和计算技术,帮助工程师和研究人员在材料选择、设计和制造过程中实现优化。 Digimat软件主要包含几个模块,包括Digimat-MF、Digimat-FE、...

    xml-master_jason_xml_

    例如,在JavaScript中,可以使用`xml2js`库,Python有`xmltodict`和`json`模块,Java可以使用`Jackson`或`XStream`,而在.NET环境中,`System.Xml.Linq`库提供了便利的转换方法。 **实际应用:** XML到JSON转换在...

    第四次XML.zip

    "第四次XML"可能指的是一个关于XML的学习资料、教程或者案例集合,其核心可能涵盖了XML的最新发展、应用及最佳实践。 XML的设计目标是简化数据的共享和交换,特别是在不同的系统之间。它的主要特点包括: 1. **...

    android XML简单序列化

    本教程将详细讲解Android中XML序列化的基础知识,并通过一个简单案例来加深理解。 首先,我们要明白什么是XML序列化。XML序列化就是将Java对象转换为XML格式的字符串,以便于存储或者在网络上传输。反之,反序列化...

    betwixt详细使用说明

    然而,对于复杂的对象结构或需要高度定制的 XML 格式,可能需要使用更强大的工具,如 JAXB 或 XStream。 总的来说,Betwixt 是一个轻量级的解决方案,适合快速地在 Java beans 和 XML 之间进行简单的转换。如果你的...

    微信公众平台应用开发:方法、技巧与案例.(机械工业.柳峰)

    他还是一位资深的Java软件开发工程师和Android/iOS移动应用开发工程师,活跃于CocoaChina、开源中国、CSDN等社区,CSDN博客专家,在CSDN博客撰写了系列微信公众平台二次开发的教程,深受欢迎并被广泛传播,也因此...

Global site tag (gtag.js) - Google Analytics