`
headsen
  • 浏览: 20726 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

XStream使用笔记

阅读更多

 

官网:http://xstream.codehaus.org/

官网上有很详细且简单易学的教程和实例。

 

作者:Headsen

日期:2013-11-2

 

简单高效的XML和JavaBean转换工具。最核心的两个方法。

   XStream xStream = new XStream();
   String xmlStr = xStream.toXml(obj);
   Object obj = xStream.fromXml(obj);

 

1、对于一个类的空对象(所有属性不赋值),返回一个根节点的报文。属性为Null的属性不会生成节点。属性非null的空值(如空字符串、空数组)会生成空白节点。

 

2、如果不设置类的别名,报文的根节点为【包名+类名】,显的臃肿,如:“xxx.package.ClassName”。

 

3、所有的注解,都有对应的java方法。注解的好处就是简单,但是耦合。两种方式各有各的好处。使用注解时,要调用下面方法激活。

xStream.processAnnotations(Person.class);

 

4、如果要处理的对象,多个属性引用统一对象,那么生成的XML很多节点数据会相同。XStream默认使用reference来精简XML的大小。如:

	List order = new ArrayList();
	order.add(bj);
	order.add(bj);
	order.add(order);
	结果:
	<list>
	  <CD>
	    <id>Next Road Cross</id>
	  </CD>
	  <CD reference="../CD"/>
	  <list reference=".."/>
	</list>

       可以通过setModel设置引用模式。但是,在上述例子中,由于Order引用自己,不过不设置引用解析,则会抛出循环依赖错误。

 

5、对于没有父(根)节点的XML报文,可以使用隐式集合。如:

xStream.addImplicitCollection(Person.class, "friends");

 

6、默认情况下,XStream会生成干净的XML。有时候为了生成配置文件,或可读性更好的XML,需要使用节点属性。

xStream.useAttributeFor(Person.class, "firstname");
<person firstname="Headsen"></person>

 

7、一些结构对象,想作为节点转换时,需要实现对应的Convertor。如:

/*
 * 联系方式类的转换器
 */
public class PhoneNumberConvertor implements SingleValueConverter {
    public boolean canConvert(Class type) {
        return type.equals(PhoneNumber.class);
    }
    public Object fromString(String number) {
        return new PhoneNumber(0, number);
    }
    public String toString(Object phone) {
        return ((PhoneNumber) phone).getCode() + "-" + ((PhoneNumber) phone).getNumber();
    }
}
xstream.registerConverter(new PhoneNumberConvertor());

结果:
<person lastname="Zhang" fax="111-412-4444">
</person>

 

8、有时候,不想某些属性生成在XML中,可使用以下方法:

xStream.omitField(Person.class, "firstname");

 

9、XStream还支持转换为JSON格式,只需注入合适的解析驱动即可。但是XStream并不建议这样做。JSON格式有很大的局限性,特别是表示一些稍微复杂的数据类型。

XStream xstream = new XStream(new JettisonMappedXmlDriver());

XStream很简单,简单的记一下。代码都没贴上来。这里有个不错的。

http://www.cnblogs.com/hoojo/archive/2011/04/22/2025197.html

 

分享到:
评论

相关推荐

    Xstream使用说明

    ### Xstream使用说明 #### 一、Xstream简介 Xstream是一种对象XML映射(Object/XML Mapping)技术,主要用于处理XML文件序列化的工作。通过Xstream可以轻松地将Java对象序列化为XML文档,或者将XML文档反序列化为...

    XStream使用文档 wd.docx

    以下是一个简单的示例,展示了如何创建 `XStream` 实例并使用它来将 `Person` 对象转换为 XML: ```java import com.thoughtworks.xstream.XStream; public class Main { public static void main(String[] args)...

    xstream使用案例

    2. **初始化 XStream**: 创建 `XStream` 实例,通常建议使用 `XStream(xmlDriver)` 初始化,其中 `xmlDriver` 可以是 `JDOMDriver` 或 `DomDriver` 等。 3. **注册转换器**: 如果需要处理自定义类型,可能需要注册...

    XStream使用文档

    该文件是XStream官方使用文档,有效帮助程序员解决xml技术问题

    xstream使用小记

    《Xstream使用小记》 Xstream是一款Java库,它提供了简单且强大的方式来序列化和反序列化Java对象到XML,以及从XML回转换为Java对象。在本文中,我们将深入探讨Xstream的核心概念、使用场景以及如何通过实例进行...

    XStream使用文档.docx

    XStream使用文档 XStream是一个轻量级的、简单易用的开放源代码Java库,用于将Java对象序列化为XML或者再转换回来。XStream还能将Java对象转成其它格式,比如JSon。官方上的XStream特点包括使用简单、不需要配置...

    XStream使用例子

    在本文中,我们将深入探讨XStream的使用方法,包括它的核心概念、配置、安全性和性能优化。 **1. 序列化到XML** XStream的核心功能是能够将Java对象转换成XML。首先,我们需要导入XStream库,并创建一个XStream...

    使用XStream操作xml教程

    本教程将深入探讨如何使用XStream进行XML操作。 一、XStream简介 XStream是一个开源库,由Johannes Link开发,它允许开发者以一种声明性方式将Java对象序列化为XML,然后又可以从XML还原回对象。XStream的核心理念...

    xStream使用demo

    使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...

    xStream xml to bean

    在`beanToXml()` 方法中,同样需要初始化xStream实例,然后使用`toXML()` 方法将Bean对象转换为XML字符串: ```java public String beanToXml(YourBeanClass bean) { XStream xstream = new XStream(new DomDriver...

    xml解析及使用XStream实现javaBean与xml之间的转换

    本篇将详细讲解XML的解析方式及其在Java中的应用,特别是如何使用XStream库进行JavaBean与XML之间的互转。 1. **XML解析方式** - DOM解析:Document Object Model,它一次性加载整个XML文档到内存,形成一棵树形...

    XStream Java下的使用

    **XStream Java下的使用** XStream 是一个Java库,它能够将Java对象转换为XML,同时也能将XML数据转换回相应的Java对象。这个强大的库在处理XML序列化和反序列化时提供了简单而直观的API,尤其适用于Android开发中...

    java 利用Xstream注解生成和解析xml

    Xstream通过使用注解提供了高度的灵活性,使得XML的生成和解析更加简单和直观。在这篇文章中,我们将深入探讨如何利用Xstream的注解来处理XML。 首先,要使用Xstream,我们需要在项目中引入其依赖。如果你使用的是...

    最齐全的xstream1.4.8.jar

    最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...

    使用XStream 多集合生成xml

    在这个场景中,"使用XStream多集合生成xml"是一个关键的技术点,它涉及到如何将多个集合类的对象转换成XML文档。以下是对这一主题的详细说明。 首先,我们需要了解XStream的基本用法。XStream的核心是`XStream`类,...

    XStream使用方法总结附实例代码

    下面我们将详细探讨`XStream`的使用方法和特性。 首先,创建`XStream`对象是通过`new XStream()`完成的。双向转换是`XStream`的核心功能,`toXML()`方法用于将Java对象转换为XML字符串,而`fromXML()`方法则相反,...

    xstream-1.4.2.jar

    XStream-1.4.2可能是一个稳定且广泛使用的版本,对于那些需要处理XML与Java对象之间转换的项目来说,它是一个可靠的选择。 标签"xstream.jar"明确了这是一个Java档案(JAR)文件,通常包含Java类、资源和其他相关...

    XStream开发使用的包

    XStream开发时使用的包,官网原句:XStream is a simple library to serialize objects to XML and back again. 要使对象转化成xml,使用: XStream xstream = new XStream(); String str = xtream.toXML(Object); ...

    xstream-1.4.15.jar

    XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...

    xStream完整Jar包

    这个“xStream完整Jar包”很可能包含了 XStream 库的所有组件,包括核心库、相关的依赖和可能的示例代码,以确保用户在使用过程中不会遇到因缺少依赖而导致的错误。 **XML 序列化与反序列化** XStream 的主要功能...

Global site tag (gtag.js) - Google Analytics