Judy Cao

导航

XStream--简易实现XML与JAVABEAN互转

XML与JAVABEAN之间相互转换,在业务逻辑比较单纯的时候(比如说不需要进行格式验证等安全性验证时)用XStream比较简单。

付小例子一个

 

1,JAVABEAN 转为 XML

package com.hitrust.judy.test;

import com.demo.model.User;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class XStreamTest {

 
 public static void main(String[] args) {
  XStream xs = new XStream(new DomDriver());
  xs.alias("User", User.class);//指定XML根节点名称,设定xs要转换的对象。
  User User= new User();

  user.setName("hahacao");

  user.setAge(21);
  String xmlContent = xs.toXML(acct);
  System.out.println(xmlContent);
 }
}

 

2,XML 转为 JAVABEAN

package com.hitrust.judy.test;

import com.demo.model.User;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class XStreamTest {

 
 public static void main(String[] args) {
  XStream xs = new XStream(new DomDriver());
  xs.alias("User", User.class);//指定XML根节点名称,设定xs要转换的对象。
  String xmlContent = “<User><name>hahacao</name><age>21</age></User>”;
  User user = (User)xs.fromXML(xmlContent );
  System.out.println(user.getName());
  System.out.println(user.getAge());
 }
}

 

 

总结:对于XStream的优点,一是封装的很好,用起来非常简单。二是对于复杂的JAVABEAN(有的属性不是基本数据类型)也可以处理(生成的XML嵌套比较多层)。

        对于XStream的缺点,封装的太傻瓜了,自己能控制的太少。同时还有一些小bug(比如说_会转换成-)。而且类中的一些静态常量也会转换成节点(封装的太傻了。。。)

        疑问是,当类的属性为null时,转换出来的XML竟然没有对应节点,也就说,当属性为引用数据类型,只有在属性值不为null的情况下转换出的XML才会有对应节点。。。基本数据类型如int,默认值为0,就不会有这个问题。

        不知道这个bug怎么解决,看了下XStream的API,狗日的是英语,于是放弃。。。

posted on 2010-11-02 10:41  Judy Cao  阅读(1557)  评论(0)    收藏  举报