XStream实现XML与JAVA对象之间的转换(一)

Java 天涯孤鸟 2301℃ 0评论

一、简介

XStream是一个简单的库,将对象序列化为XML和将XML反序列化为对象。

二、依赖的jar包

使用XStream,需要导入几个jar包xstream-[version].jar, xpp3-[version].jar and xmlpull-[version].jar。Xpp3是一个非常快速的XML pull-parser实现。 如果不想包括这些依赖关系,可以使用标准的JAXP DOM解析器,或者从Java 6开始,使用集成的StAX解析器:

  • XStream xstream = new XStream(new DomDriver()); // does not require XPP3 library
  • XStream xstream = new XStream(new StaxDriver()); // does not require XPP3 library starting with Java 6

三、对象序列化为XML

XStream将对象转化为XML的方法比较简单,只需要调用toXML(object)就可以。
下面请看一个例子:

这里定义了两个对象,接下来要将对象转化为XML:

运行结果如下图:

默认情况下,XStream会将完整的包名转换为XML元素,有时候,为了使报文更简洁,可以使用指定别名的方式来替换完整的包名。

除了alias()方法之外,提供了aliasField(),指定类下的属性的别名。当你有一个集合不需要显示它的根标签,你可以映射它作为一个隐式集合,使用xstream.addImplicitCollection(Blog.class, “entries”);隐藏entries标签,还可以用 xstream.aliasPackage(“my.company”, “org.thoughtworks”);来指定包的别名
重新运行main方法,可以看到sinvo.bean.persnal已经替换为我们自定义的person名了,这里的alias方法就是指定你想要自定义的元素的别名

四、XML反序列化为对象

XStream提供了反序列方法fromXML(xml)将XML转换为java对象

运行结果如下:

这里需要注意一下,由于我们上面的报文已经做了别名,所以在反序列化的时候,也需要指定别名,否则会转换出错。

转载请注明:猫头鹰工作室 » XStream实现XML与JAVA对象之间的转换(一)

喜欢 (0)or分享 (0)
Avatar
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址