Simple XML使用小结

之前曾写过一blog : XStream序列化JAVA对象为XML以及反序列化 (http://www.micmiu.com/lang/java/xstream-java-xml/),今天介绍另一个Java Bean<->XML 之间序列化和反序列化的轻量级工具:Simple

官网:http://simple.sourceforge.net/home.php

截止2011-09-28最新版本(附近可下载):simple-xml-2.6.1.jar

特点:

  • jar lib文件只有360K左右的大小
  • 它的使用不需要依赖于其他 JAR 文件
  • 通过注解的方式,灵活方便

下面将分节详细介绍Simple的特点和使用方法:

  • [一]、简单bean的序列化和反序列化
  • [二]、自定义节点名称
  • [三]、嵌套对象
  • [四]、可选的非强制性的元素或属性
  • [五]、List<Object>处理
  • [六]、inline 参数用法
  • [七]、构造函数的注解处理

[一]、简单bean的序列化和反序列化

1.java bean

2.序列化

序列化成功生成的simple_testvo.xml文件如下:

ps: 注解可以把Java的属性序列化时指定为属性或者节点元素

3.反序列化

把上述生成的XML文件反序列化成Java bean测试代码:

如果XML中包括中文字符有可能反序列化时会报错,以utf-8的编码读取XML文件即可,故修改代码如下:

运行反序列化,打印Java bean信息如下:

MyTestVo : [ userName = michael , wife = 小小小 , realName = 大大 , height = 173.3 , bornDate = Wed Sep 28 17:39:59 CST 2011 ]

[二]、自定义节点名称

1.java bean

2.序列化

序列化后生成的simple_testvo.xml文件如下:

可以和之前的序列化XML文件对比下,看看区别在哪里。

3.反序列化

运行反序列化程序后的打印结果如下:

MyTestVo : [ userName = michael , wife = 小小 , realName = 大大 , height = 173.3 , bornDate = Wed Sep 28 21:47:37 CST 2011 ]

[三]、嵌套对象

1.java bean

2.序列化

运行上述方法,序列化生成的XML文件如下:

3.反序列化的方法和之前的一致,自己 可以 测试下结果是否正确。

[四]、可选的非强制性的元素或属性

1.java bean

2.序列化

运行序列化程序后生成的XML文件如下:

3.反序列化

运行反序列化程序后打印结果如下:

MyTestVo : [ userName = michael , wife = null , realName = 大大 , height = 173.3 , bornDate = null ]

[五]、List<Object>处理

1.java bean

2.序列化

运行序列化程序后生成的XML文件如下:

3.反序列化,运行结果打印对象信息如下:

PropertyList : [ name = Wife List , EntryVo list size = 4 ] .

4.修改注解@ElementList的参数

序列化后生成的XML文件如下:

注意XML文件的变化。

[六]、 inline 参数用法

  1.java bean

以上节中得bean为基础修改注解如下:

2.序列化后生成的XML文件如下:

和上节生成的文件相比,XML结构少了一个层次。

[七]、构造函数的注解处理

1.java bean

2.序列化

生成的XML文件如下:

3.反序列化

反序列化生成的bean的信息打印如下:

EntryVo : [ name = blog, value = http://www.micmiu.com ].

ps:如果java bean有参数的构函数,需要在构造函数的参数前也加上相应的注解,否则在反序列化时会出错。

本文就先介绍到这,下次再介绍其他运用事例。

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/opensource/simple-xml/

发表评论?

3 条评论。

  1. 博主是否提供php的开发,略有少许报酬

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">