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,狗日的是英语,于是放弃。。。
浙公网安备 33010602011771号