快速业务通道

使用XStream在JavaBean与XML/JSON之间相互转换 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

使用XStream在JavaBean与XML/JSON之间相互转换

时间:2011-01-16 BlogJava 隔叶黄莺

XML 和 JSON 是当今常用的两种数据描述与传输的格式,特别是涉及到 JS 时使用 JSON 颇为频繁。自然,在Java的世界里少不了完成JavaBean 与这两种格式相互转换的组件,那就是 XStream 和 JSON-lib。这里我简单记下XStream 的用法。

其实相类似的工具早已有之。如果用过 DWR 的同志,一定有印像,DWR 进行远程方法调用时也能为你完成 JavaBean 和 JSON 格式的双向转换的,所依赖的是它的各种 Converter。再要是对 Struts1 的细节有所注意的话,Struts1 的 ActionServlet 在初始化 struts-config.xml 时是通过 commons-digester 来完成 XML 到 JavaBean 转换的。相应的 Apache 也有一个 commons-betwixt 实现了JavaBean 到 XML 的生成。

而我这里要说的 XStream(http://xstream.codehaus.org) 把 JavaBean 与 XML/JSON 间的双向转换统统实现了,而 JSON-lib 则如其名,功能太显简陋了。要使用 XStream,需下载到 xstream包,当前版本是 1.3.1。然后把 xstream-1.x.x.jar 添加到项目的 Classpath 上,可不依赖于其他包。在某些有要求时候才需要用到 lib 目录中的其他包,下面会提到。

简单说明 XStream 的使用吧,分为 JavaBean -> XML、JavaBean -> JSON、 XML -> JavaBean、JSON -> JavaBean 几部分内容。在开始例子之前,先定义三个类(都在 com.unmi.model 包中):

01.public class Customer { 02.    private int custId; 03.    private String custName; 04.    private List<Order> orders; 05.    //setter/getter 和构造方法略 06.} 07. 08.public class Order { 09.    private int orderId; 10.    private String orderName; 11.    private Product[] products; 12.    //setter/getter 和构造方法略 13.} 14. 15.public class Product { 16.    private int prodId; 17.    private String prodName; 18.    private double prodPrice; 19.    //setter/getter 和构造方法略 20.}

Customer/Order/Product,它们之间的关系,依次是一对多、一对多的,为演示目的,分别用了 List 和数组作为聚合属性。

1. JavaBean -> XML

01.public static void main(String[] args) { 02. 03.    //构造接近实际的 Customer 对象 04.    Product p1 = new Product(1001,"电脑",4000); 05.    Product p2 = new Product(1002,"空调",2000); 06.    Product[] prods1 = new Product[]{p1,p2}; 07. 08.    Order order1 = new Order(101,"电器类",prods1); 09. 10.    List<Order> orders = new ArrayList<Order>(); 11.    orders.add(order1);  12.    Customer customer = new Customer(1,"Unmi",orders); 13. 14.    //XStream xstream = new XStream(); 15.    XStream xstream = new XStream(new DomDriver()); 16. 17.    String xml = xstream.toXML(customer);//转换成 xml 格式 18. 19.    System.out.println(xml); //输出 xml 字符串 20.}

使用XStream在JavaBean与XML/JSON之间相互转换(2)

时间:2011-01-16 BlogJava 隔叶黄莺

代码说明:XStream 对象的构造,可无参,或传入某一 DomDriver 实例,如 XppDomDriver、JDomDriver、Dom4JDriver,它们的用途我想不必多说,注意要引入相应的 jar 包,无参或 DomDriver 则是用 JDK 默认的解析 XML 的实

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号