使用 XStream 在 JavaBean 与 XML/JSON 之间相互转换
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 包中):
public class Customer {
private int custId;
private String custName;
private List<Order> orders;
//setter/getter 和构造方法略
}
public class Order {
private int orderId;
private String orderName;
private Product[] products;
//setter/getter 和构造方法略
}
public class Product {
private int prodId;
private String prodName;
private double prodPrice;
//setter/getter 和构造方法略
}
Customer/Order/Product,它们之间的关系,依次是一对多、一对多的,为演示目的,分别用了 List 和数组作为聚合属性。
1. JavaBean -> XML
public static void main(String[] args) {
//构造接近实际的 Customer 对象
Product p1 = new Product(1001,"电脑",4000);
Product p2 = new Product(1002,"空调",2000);
Product[] prods1 = new Product[]{p1,p2};
Order order1 =
相关文档:
对于将TXT文档中数据导入XML中的程序网上不多,但是有很多是先将TXT导入到DataSet中,在用XML进行传输。所以本人就在这里与大家分享一下直接导入的这种方式。
本程序也可以应用于ASP.NET中,那么下面的命名空间及一些地方就得改改了,还有要将程序都放于Page_Load中。
using System;
using System.Collections.Generic;
......
在最近的项目中,偶遇到一个可以说很小的问题,静下心来,有想把它记下来的冲动,随产生这不成文的几段文字。
在我用ReadXml()和ReadSchema()读取XML文件时,总是出现异常,后来经过调试发现报XmlException异常并提示“缺少根元素&rd ......
此部分源码为最核心部分代码!
package com.etong.allen;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
impor ......
XML在我们的程序中用到的越来越多,因为它存储、读取、修改都比较方便。
下面我来分享一下XML的常用操作(增删改查),下面是程序运行效果:
增(增加节点包括创建XML):
/// <summary>
/// 创建XML文档
/// </summary>
/// <param name="path"></param>
......