把一个json数组串转换成普通数组

来源:互联网 发布:java 方法里嵌套class 编辑:程序博客网 时间:2024/06/06 04:11

package comm;  
 
import java.text.SimpleDateFormat;  
import java.util.ArrayList;  
import java.util.Collection;  
import java.util.Date;  
import java.util.HashMap;  
import java.util.Iterator;  
import java.util.List;  
import java.util.Map;  
 
import net.sf.ezmorph.MorpherRegistry;  
import net.sf.ezmorph.object.DateMorpher;  
import net.sf.json.JSONArray;  
import net.sf.json.JSONObject;  
import net.sf.json.JsonConfig;  
import net.sf.json.processors.JsonValueProcessor;  
import net.sf.json.util.JSONUtils;  
import net.sf.json.xml.XMLSerializer;  
 
public class JsonUtil {  
 
    /** 
     * 设置日期转换格式 
     */ 
    static {  
        //注册器  
        MorpherRegistry mr = JSONUtils.getMorpherRegistry();  
 
        //可转换的日期格式,即Json串中可以出现以下格式的日期与时间  
        DateMorpher dm = new DateMorpher(new String[] { Util.YYYY_MM_DD,  
                Util.YYYY_MM_DD_HH_MM_ss, Util.HH_MM_ss, Util.YYYYMMDD,  
                Util.YYYYMMDDHHMMSS, Util.HHMMss });  
        mr.registerMorpher(dm);  
    }  
 
    /** 
    * 从json串转换成实体对象 
    * @param jsonObjStr e.g. {'name':'get','dateAttr':'2009-11-12'} 
    * @param clazz Person.class 
    * @return 
    */ 
    public static Object getDtoFromJsonObjStr(String jsonObjStr, Class clazz) {  
        return JSONObject.toBean(JSONObject.fromObject(jsonObjStr), clazz);  
    }  
 
    /** 
    * 从json串转换成实体对象,并且实体集合属性存有另外实体Bean 
    * @param jsonObjStr e.g. {'data':[{'name':'get'},{'name':'set'}]} 
    * @param clazz e.g. MyBean.class 
    * @param classMap e.g. classMap.put("data", Person.class) 
    * @return Object 
    */ 
    public static Object getDtoFromJsonObjStr(String jsonObjStr, Class clazz, Map classMap) {  
        return JSONObject.toBean(JSONObject.fromObject(jsonObjStr), clazz, classMap);  
    }  
 
    /** 
    * 把一个json数组串转换成普通数组 
    * @param jsonArrStr  e.g. ['get',1,true,null] 
    * @return Object[] 
    */ 
    public static Object[] getArrFromJsonArrStr(String jsonArrStr) {  
        return JSONArray.fromObject(jsonArrStr).toArray();  
    }  
 
    /** 
    * 把一个json数组串转换成实体数组 
    * @param jsonArrStr e.g. [{'name':'get'},{'name':'set'}] 
    * @param clazz e.g. Person.class 
    * @return Object[] 
    */ 
    public static Object[] getDtoArrFromJsonArrStr(String jsonArrStr, Class clazz) {  
        JSONArray jsonArr = JSONArray.fromObject(jsonArrStr);  
        Object[] objArr = new Object[jsonArr.size()];  
        for (int i = 0; i < jsonArr.size(); i++) {  
            objArr[i] = JSONObject.toBean(jsonArr.getJSONObject(i), clazz);  
        }  
        return objArr;  
    }  
 
    /** 
    * 把一个json数组串转换成实体数组,且数组元素的属性含有另外实例Bean 
    * @param jsonArrStr e.g. [{'data':[{'name':'get'}]},{'data':[{'name':'set'}]}] 
    * @param clazz e.g. MyBean.class 
    * @param classMap e.g. classMap.put("data", Person.class) 
    * @return Object[] 
    */ 
    public static Object[] getDtoArrFromJsonArrStr(String jsonArrStr, Class clazz,  
            Map classMap) {  
        JSONArray array = JSONArray.fromObject(jsonArrStr);  
        Object[] obj = new Object[array.size()];  
        for (int i = 0; i < array.size(); i++) {  
            JSONObject jsonObject = array.getJSONObject(i);  
            obj[i] = JSONObject.toBean(jsonObject, clazz, classMap);  
        }  
        return obj;  
    }  
 
    /** 
    * 把一个json数组串转换成存放普通类型元素的集合 
    * @param jsonArrStr  e.g. ['get',1,true,null] 
    * @return List 
    */ 
    public static List getListFromJsonArrStr(String jsonArrStr) {  
        JSONArray jsonArr = JSONArray.fromObject(jsonArrStr);  
        List list = new ArrayList();  
        for (int i = 0; i < jsonArr.size(); i++) {  
            list.add(jsonArr.get(i));  
        }  
        return list;  
    }  
 
    /** 
    * 把一个json数组串转换成集合,且集合里存放的为实例Bean 
    * @param jsonArrStr e.g. [{'name':'get'},{'name':'set'}] 
    * @param clazz 
    * @return List 
    */ 
    public static List getListFromJsonArrStr(String jsonArrStr, Class clazz) {  
        JSONArray jsonArr = JSONArray.fromObject(jsonArrStr);  
        List list = new ArrayList();  
        for (int i = 0; i < jsonArr.size(); i++) {  
            list.add(JSONObject.toBean(jsonArr.getJSONObject(i), clazz));  
        }  
        return list;  
    }  
 
    /** 
    * 把一个json数组串转换成集合,且集合里的对象的属性含有另外实例Bean 
    * @param jsonArrStr e.g. [{'data':[{'name':'get'}]},{'data':[{'name':'set'}]}] 
    * @param clazz e.g. MyBean.class 
    * @param classMap e.g. classMap.put("data", Person.class) 
    * @return List 
    */ 
    public static List getListFromJsonArrStr(String jsonArrStr, Class clazz, Map classMap) {  
        JSONArray jsonArr = JSONArray.fromObject(jsonArrStr);  
        List list = new ArrayList();  
        for (int i = 0; i < jsonArr.size(); i++) {  
            list.add(JSONObject.toBean(jsonArr.getJSONObject(i), clazz, classMap));  
        }  
        return list;  
    }  
 
    /** 
    * 把json对象串转换成map对象 
    * @param jsonObjStr e.g. {'name':'get','int':1,'double',1.1,'null':null} 
    * @return Map 
    */ 
    public static Map getMapFromJsonObjStr(String jsonObjStr) {  
        JSONObject jsonObject = JSONObject.fromObject(jsonObjStr);  
 
        Map map = new HashMap();  
        for (Iterator iter = jsonObject.keys(); iter.hasNext();) {  
            String key = (String) iter.next();  
            map.put(key, jsonObject.get(key));  
        }  
        return map;  
    }  
 
    /** 
    * 把json对象串转换成map对象,且map对象里存放的为其他实体Bean 
    * @param jsonObjStr e.g. {'data1':{'name':'get'},'data2':{'name':'set'}} 
    * @param clazz e.g. Person.class 
    * @return Map 
    */ 
    public static Map getMapFromJsonObjStr(String jsonObjStr, Class clazz) {  
        JSONObject jsonObject = JSONObject.fromObject(jsonObjStr);  
 
        Map map = new HashMap();  
        for (Iterator iter = jsonObject.keys(); iter.hasNext();) {  
            String key = (String) iter.next();  
            map.put(key, JSONObject.toBean(jsonObject.getJSONObject(key), clazz));  
        }  
        return map;  
    }  
 
    /** 
     * 把json对象串转换成map对象,且map对象里存放的其他实体Bean还含有另外实体Bean 
     * @param jsonObjStr e.g. {'mybean':{'data':[{'name':'get'}]}} 
     * @param clazz e.g. MyBean.class 
     * @param classMap  e.g. classMap.put("data", Person.class) 
     * @return Map 
     */ 
    public static Map getMapFromJsonObjStr(String jsonObjStr, Class clazz, Map classMap) {  
        JSONObject jsonObject = JSONObject.fromObject(jsonObjStr);  
 
        Map map = new HashMap();  
        for (Iterator iter = jsonObject.keys(); iter.hasNext();) {  
            String key = (String) iter.next();  
            map.put(key, JSONObject  
                    .toBean(jsonObject.getJSONObject(key), clazz, classMap));  
        }  
        return map;  
    }  
 
    /** 
     * 把实体Bean、Map对象、数组、列表集合转换成Json串 
     * @param obj  
     * @return 
     * @throws Exception String 
     */ 
    public static String getJsonStr(Object obj) {  
        String jsonStr = null;  
        //Json配置      
        JsonConfig jsonCfg = new JsonConfig();  
 
        //注册日期处理器  
        jsonCfg.registerJsonValueProcessor(java.util.Date.class,  
                new JsonDateValueProcessor(Util.YYYY_MM_DD_HH_MM_ss));  
        if (obj == null) {  
            return "{}";  
        }  
 
        if (obj instanceof Collection || obj instanceof Object[]) {  
            jsonStr = JSONArray.fromObject(obj, jsonCfg).toString();  
        } else {  
            jsonStr = JSONObject.fromObject(obj, jsonCfg).toString();  
        }  
 
        return jsonStr;  
    }  
 
    /** 
     * 把json串、数组、集合(collection map)、实体Bean转换成XML 
     * XMLSerializer API: 
     * http://json-lib.sourceforge.net/apidocs/net/sf/json/xml/XMLSerializer.html 
     * 具体实例请参考: 
     * http://json-lib.sourceforge.net/xref-test/net/sf/json/xml/TestXMLSerializer_writes.html 
     * http://json-lib.sourceforge.net/xref-test/net/sf/json/xml/TestXMLSerializer_writes.html 
     * @param obj  
     * @return 
     * @throws Exception String 
     */ 
    public static String getXMLFromObj(Object obj) {  
        XMLSerializer xmlSerial = new XMLSerializer();  
 
        //Json配置      
        JsonConfig jsonCfg = new JsonConfig();  
 
        //注册日期处理器  
        jsonCfg.registerJsonValueProcessor(java.util.Date.class,  
                new JsonDateValueProcessor(Util.YYYY_MM_DD_HH_MM_ss));  
 
        if ((String.class.isInstance(obj) && String.valueOf(obj).startsWith("["))  
                || obj.getClass().isArray() || Collection.class.isInstance(obj)) {  
            JSONArray jsonArr = JSONArray.fromObject(obj, jsonCfg);  
            return xmlSerial.write(jsonArr);  
        } else {  
            JSONObject jsonObj = JSONObject.fromObject(obj, jsonCfg);  
            return xmlSerial.write(jsonObj);  
        }  
    }  
 
    /** 
     * 从XML转json串 
     * @param xml 
     * @return String 
     */ 
    public static String getJsonStrFromXML(String xml) {  
        XMLSerializer xmlSerial = new XMLSerializer();  
        return String.valueOf(xmlSerial.read(xml));  
    }  
 
}  
 
/** 
 * json日期值处理器实现   
 * (C) 2009-9-11, jzj 
 */ 
class JsonDateValueProcessor implements JsonValueProcessor {  
 
    private String format = Util.YYYY_MM_DD_HH_MM_ss;  
 
    public JsonDateValueProcessor() {  
 
    }  
 
    public JsonDateValueProcessor(String format) {  
        this.format = format;  
    }  
 
    public Object processArrayValue(Object value, JsonConfig jsonConfig) {  
        return process(value, jsonConfig);  
    }  
 
    public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {  
        return process(value, jsonConfig);  
    }  
 
    private Object process(Object value, JsonConfig jsonConfig) {  
        if (value instanceof Date) {  
            String str = new SimpleDateFormat(format).format((Date) value);  
            return str;  
        }  
        return value == null ? null : value.toString();  
    }  
 
    public String getFormat() {  
        return format;  
    }  
 
    public void setFormat(String format) {  
        this.format = format;  
    }  
 


JsonUtilTest

 

package comm.test;  
 
import java.text.SimpleDateFormat;  
import java.util.ArrayList;  
import java.util.Date;  
import java.util.HashMap;  
import java.util.Iterator;  
import java.util.LinkedHashMap;  
import java.util.LinkedHashSet;  
import java.util.List;  
import java.util.Map;  
import java.util.Set;  
 
import junit.framework.TestCase;  
 
import comm.JsonUtil;  
 
/** 
 * JsonUtil测试类 
 * (C) 2009-9-11, jzj 
 */ 
public class JsonUtilTest extends TestCase {  
 
    /** 
     * 从json串转换成实体对象,且实体中Date属性能正确转换 
     *  void 
     */ 
    public void testGetDtoFromJsonObjStr1() {  
        String json = "{'name':'get','dateAttr':'2009-11-12'}";  
        Person ps = (Person) JsonUtil.getDtoFromJsonObjStr(json, Person.class);  
        //print: get  
        System.out.println(ps.getName());  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
        //print: 2009-11-12  
        System.out.println(sdf.format(ps.getDateAttr()));  
    }  
 
    /** 
     * 从json串转换成实体对象,并且实体集合属性存有另外实体Bean 
     *  void 
     */ 
    public void testGetDtoFromJsonObjStr3() {  
        String json = "{'data':[{'name':'get'},{'name':'set'}]}";  
        Map classMap = new HashMap();  
        classMap.put("data", Person.class);  
        MyBean myBean = (MyBean) JsonUtil.getDtoFromJsonObjStr(json, MyBean.class,  
                classMap);  
        //print: class comm.test.Person name =get         
        System.out.println(myBean.getData().get(0).getClass() + " name =" 
                + ((Person) myBean.getData().get(0)).getName());  
        //print: class comm.test.Person name =set  
        System.out.println(myBean.getData().get(1).getClass() + " name =" 
                + ((Person) myBean.getData().get(1)).getName());  
    }  
 
    /** 
     * 把一个json数组串转换成普通数组 
     *  void 
     */ 
    public void testGetArrFromJsonArrStr() {  
        String json = "['get',1,true,null]";  
        Object[] objArr = JsonUtil.getArrFromJsonArrStr(json);  
        for (int i = 0; i < objArr.length; i++) {  
            System.out.println(objArr[i].getClass() + " " + objArr[i]);  
        }  
        /*  print: 
            class java.lang.String get 
            class java.lang.Integer 1 
            class java.lang.Boolean true 
            class net.sf.json.JSONNull null 
         */ 
    }  
 
    /** 
     * 把一个json数组串转换成实体数组 
     *  void 
     */ 
    public void testGetDtoArrFromJsonArrStr1() {  
        String json = "[{'name':'get'},{'name':'set'}]";  
        Object[] objArr = JsonUtil.getDtoArrFromJsonArrStr(json, Person.class);  
        for (int i = 0; i < objArr.length; i++) {  
            System.out.println(objArr[i].getClass() + " name = " 
                    + ((Person) objArr[i]).getName());  
        }  
        /*  print: 
            class comm.test.Person name = get 
            class comm.test.Person name = set 
         */ 
    }  
 
    /** 
     * 把一个json数组串转换成实体数组,且数组元素的属性含有另外实例Bean 
     *  void 
     */ 
    public void testGetDtoArrFromJsonArrStr2() {  
        String json = "[{'data':[{'name':'get'}]},{'data':[{'name':'set'}]}]";  
        Map classMap = new HashMap();  
        classMap.put("data", Person.class);  
        Object[] objArr = JsonUtil.getDtoArrFromJsonArrStr(json, MyBean.class, classMap);  
        for (int i = 0; i < objArr.length; i++) {  
            System.out.println(((MyBean) objArr[i]).getData().get(0).getClass()  
                    + " name = " 
                    + ((Person) ((MyBean) objArr[i]).getData().get(0)).getName());  
        }  
        /*  print: 
            class comm.test.Person name = get 
            class comm.test.Person name = set 
         */ 
    }  
 
    /** 
     * 把一个json数组串转换成存放普通类型元素的集合 
     *  void 
     */ 
    public void testGetListFromJsonArrStr1() {  
        String json = "['get',1,true,null]";  
        List list = JsonUtil.getListFromJsonArrStr(json);  
        for (int i = 0; i < list.size(); i++) {  
            System.out.println(list.get(i).getClass() + " " + list.get(i));  
        }  
        /*  print: 
            class java.lang.String get 
            class java.lang.Integer 1 
            class java.lang.Boolean true 
            class net.sf.json.JSONNull null 
         */ 
    }  
 
    /** 
     * 把一个json数组串转换成集合,且集合里存放的为实例Bean 
     *  void 
     */ 
    public void testGetListFromJsonArrStr2() {  
        String json = "[{'name':'get'},{'name':'set'}]";  
        List list = JsonUtil.getListFromJsonArrStr(json, Person.class);  
        for (int i = 0; i < list.size(); i++) {  
            System.out.println(list.get(i).getClass() + " name = " 
                    + ((Person) list.get(i)).getName());  
        }  
        /*  print: 
            class comm.test.Person name = get 
            class comm.test.Person name = set 
         */ 
    }  
 
    /** 
     * 把一个json数组串转换成集合,且集合里的对象的属性含有另外实例Bean 
     *  void 
     */ 
    public void testGetListFromJsonArrStr3() {  
        String json = "[{'data':[{'name':'get'}]},{'data':[{'name':'set'}]}]";  
        Map classMap = new HashMap();  
        classMap.put("data", Person.class);  
        List list = JsonUtil.getListFromJsonArrStr(json, MyBean.class, classMap);  
        for (int i = 0; i < list.size(); i++) {  
            System.out.println(((MyBean) list.get(i)).getData().get(0).getClass()  
                    + " name = " 
                    + ((Person) ((MyBean) list.get(i)).getData().get(0)).getName());  
        }  
        /*  print: 
            class comm.test.Person name = get 
            class comm.test.Person name = set 
         */ 
    }  
 
    /** 
     * 把json对象串转换成map对象 
     *  void 
     */ 
    public void testGetMapFromJsonObjStr() {  
        String json = "{'name':'get','int':1,'double':1.1,'null':null}";  
        Map map = JsonUtil.getMapFromJsonObjStr(json);  
        for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {  
            System.out.println(map.get(iter.next()).getClass());  
        }  
        /*  print: 
            class java.lang.Double 
            class net.sf.json.JSONNull 
            class java.lang.Integer 
            class java.lang.String 
         */ 
    }  
 
    /** 
     * 把json对象串转换成map对象,且map对象里存放的为其他实体Bean 
     *  void 
     */ 
    public void testGetMapFromJsonObjStr2() {  
        String json = "{'data1':{'name':'get'},'data2':{'name':'set'}}";  
        Map map = JsonUtil.getMapFromJsonObjStr(json, Person.class);  
        for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {  
            String key = (String) iter.next();  
            System.out.println(map.get(key).getClass() + " name=" 
                    + ((Person) map.get(key)).getName());  
        }  
        /*  print: 
            class comm.test.Person name=set 
            class comm.test.Person name=get 
         */ 
    }  
 
    /** 
     * 把json对象串转换成map对象,且map对象里 
     * 存放的其他实体Bean还含有另外实体Bean 
     *  void 
     */ 
    public void testGetMapFromJsonObjStr3() {  
        String json = "{'mybean':{'data':[{'name':'get'}]}}";  
        Map classMap = new HashMap();  
        classMap.put("data", Person.class);  
        Map map = JsonUtil.getMapFromJsonObjStr(json, MyBean.class, classMap);  
        for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {  
            String key = (String) iter.next();  
            Object o = ((MyBean) map.get(key)).getData().get(0);  
            System.out.println(o.getClass() + " name=" + ((Person) o).getName());  
        }  
        /*  print: 
            class comm.test.Person name=get 
         */ 
    }  
 
    /** 
     * 实体Bean转json串 
     *  void 
     */ 
    public void testgetJsonStr1() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        MyBean myBean = new MyBean();  
        List list = new ArrayList();  
        list.add(ps);  
 
        myBean.setData(list);  
        //print: {"data":[{"dateAttr":"2009-09-12 07:24:54","name":"get"}]}  
        System.out.println(JsonUtil.getJsonStr(myBean));  
    }  
 
    /** 
     * map转json串 
     *  void 
     */ 
    public void testgetJsonStr2() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        Map map = new LinkedHashMap();  
        map.put("person1", ps);  
 
        //print: {"person1":{"dateAttr":"2009-09-12 07:24:27","name":"get"}}  
        System.out.println(JsonUtil.getJsonStr(map));  
    }  
 
    /** 
     * 数组转json串 
     *  void 
     */ 
    public void testgetJsonStr3() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        Person[] personArr = new Person[1];  
        personArr[0] = ps;  
        //print: [{"dateAttr":"2009-09-12 07:23:54","name":"get"}]  
        System.out.println(JsonUtil.getJsonStr(personArr));  
    }  
 
    /** 
     * list转json串 
     *  void 
     */ 
    public void testgetJsonStr4() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        List list = new ArrayList();  
        list.add(ps);  
 
        //print: [{"dateAttr":"2009-09-12 07:22:49","name":"get"}]  
        System.out.println(JsonUtil.getJsonStr(list));  
    }  
 
    /** 
     * set转json串 
     *  void 
     */ 
    public void testgetJsonStr5() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        Set set = new LinkedHashSet();  
        set.add(ps);  
 
        //print: [{"dateAttr":"2009-09-12 07:22:16","name":"get"}]  
        System.out.println(JsonUtil.getJsonStr(set));  
    }  
 
    /** 
     * json对象串转XML 
     *  void 
     */ 
    public void testGetXMLFromObj1() {  
        System.out.println(JsonUtil  
                .getXMLFromObj("{\"name\":\"json\",\"bool\":true,\"int\":1}"));  
        /*  print: 
            <?xml version="1.0" encoding="UTF-8"?> 
            <o> 
                <bool type="boolean">true</bool> 
                <int type="number">1</int> 
                <name type="string">json</name> 
            </o> 
         */ 
    }  
 
    /** 
     * json数组串转XML 
     *  void 
     */ 
    public void testGetXMLFromObj2() {  
        System.out.println(JsonUtil.getXMLFromObj("[1,2,3]"));  
        /*  print: 
            <?xml version="1.0" encoding="UTF-8"?> 
            <a> 
                <e type="number">1</e> 
                <e type="number">2</e> 
                <e type="number">3</e> 
            </a> 
         */ 
    }  
 
    /** 
     * java数组转XML 
     *  void 
     */ 
    public void testGetXMLFromObj3() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        Person[] personArr = new Person[2];  
        personArr[0] = ps;  
 
        System.out.println(JsonUtil.getXMLFromObj(personArr));  
        /*  print: 
            <?xml version="1.0" encoding="UTF-8"?> 
            <a> 
                <e class="object"> 
                    <dateAttr type="string">2009-09-12 06:58:55</dateAttr> 
                    <name type="string">get</name> 
                </e> 
            </a> 
         */ 
    }  
 
    /** 
     * list转XML 
     *  void 
     */ 
    public void testGetXMLFromObj4() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        List list = new ArrayList();  
        list.add(ps);  
 
        System.out.println(JsonUtil.getXMLFromObj(list));  
        /*  print: 
            <?xml version="1.0" encoding="UTF-8"?> 
            <a> 
                <e class="object"> 
                    <dateAttr type="string">2009-09-12 07:02:31</dateAttr> 
                    <name type="string">get</name> 
                </e> 
            </a> 
         */ 
    }  
 
    /** 
     * set转XML 
     * void 
     */ 
    public void testGetXMLFromObj5() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        Set set = new LinkedHashSet();  
        set.add(ps);  
 
        System.out.println(JsonUtil.getXMLFromObj(set));  
        /*  print: 
            <?xml version="1.0" encoding="UTF-8"?> 
            <a> 
                <e class="object"> 
                    <dateAttr type="string">2009-09-12 07:04:38</dateAttr> 
                    <name type="string">get</name> 
                </e> 
            </a> 
         */ 
    }  
 
    /** 
     * map转XML 
     *  void 
     */ 
    public void testGetXMLFromObj6() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        Map map = new HashMap();  
        map.put("person1", ps);  
 
        System.out.println(JsonUtil.getXMLFromObj(map));  
        /*  print: 
            <?xml version="1.0" encoding="UTF-8"?> 
            <o> 
                <person1 class="object"> 
                    <dateAttr type="string">2009-09-12 07:08:35</dateAttr> 
                    <name type="string">get</name> 
                </person1> 
            </o> 
         */ 
    }  
 
    /** 
     * 实体Bean转XML 
     *  void 
     */ 
    public void testGetXMLFromObj7() {  
        Person ps = new Person();  
        ps.setDateAttr(new Date());  
        ps.setName("get");  
        System.out.println(JsonUtil.getXMLFromObj(ps));  
        /*  print: 
            <?xml version="1.0" encoding="UTF-8"?> 
            <o> 
                <dateAttr type="string">2009-09-12 07:13:02</dateAttr> 
                <name type="string">get</name> 
            </o> 
         */ 
    }  
 
    /** 
     * 从XML对象串转json串 
     *  void 
     */ 
    public void testGetJsonStrFromXML1() {  
        String xml = "<o><dateAttr type='string'>2009-09-12 07:13:02</dateAttr>" 
                + "<name type='string'>get</name></o>";  
        //print: {"dateAttr":"2009-09-12 07:13:02","name":"get"}  
        System.out.println(JsonUtil.getJsonStrFromXML(xml));  
    }  
 
    /** 
     * 从XML数组串转json串 
     *  void 
     */ 
    public void testGetJsonStrFromXML2() {  
        String xml = "<a class='array'><e class='object'><dateAttr type='string'>2009-09-12 07:04:38</dateAttr>" 
                + "<name type='string'>get</name></e></a>";  
        //print: [{"dateAttr":"2009-09-12 07:04:38","name":"get"}]  
        System.out.println(JsonUtil.getJsonStrFromXML(xml));  
    }  
}