`

JsonUtil 学习使用

 
阅读更多


JsonUtil

源文件:

    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));   
        }   
    }





分享到:
评论

相关推荐

    commonUtils:httpUtil和jsonUtil,TcpClientUtil,webSocketUtil

    在`commonUtils-master`这个项目中,你可以找到这些工具类的源代码,学习它们的实现细节,以便在自己的项目中进行复用或参考。对于Java开发者来说,理解和使用这些工具类能够提升开发效率,同时保证代码的稳定性和可...

    json 学习笔记_20140116.pdf

    在本文档《json 学习笔记_***.pdf》中,主要介绍了在Java开发中,如何使用三个常用的JSON处理工具:struts json,json_lib,jackson-mapper。同时,也提到了在使用这些工具时可能遇到的一些常见错误及其处理方法。 ...

    jsonplugin源码包

    例如,`&lt;interceptor-ref name="defaultStack"&gt;`表明JSONPlugin使用了默认的拦截器栈,并可能在其中添加或调整了特定的拦截器来处理JSON相关的逻辑。 再来看看`com`目录。这通常包含了源代码的包结构。在这个源码包...

    一种简单的json解析方法

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端数据传输。...这些基础的工具类在小型项目或学习实践中非常实用,但面对复杂业务场景,使用成熟的JSON库会更高效和稳定。

    android通过json数据访问服务器

    总结来说,本示例展示了在Android中如何通过JSON数据访问服务器,利用多线程提高性能,以及如何使用自定义的`JsonUtil`工具类进行JSON解析。这不仅对初学者有很好的学习价值,也为网络编程经验较少的开发者提供了一...

    Java Json生成工具 源代码

    "util"包通常用于存放各种通用工具类,这里的"JsonUtil"可能是对已有JSON库的一个简单封装,以提供更加便捷的使用方式。比较"lyzjson"与"JsonUtil"的性能、易用性、功能完备性,可以帮助我们评估它们在实际项目中的...

    DotNet.Utilities类源码

    通过阅读源码,我们可以学习如何有效地使用字符串处理API,并了解如何在C#中实现更复杂的功能。 另一个可能的类是`DateTimeUtil`,它可能包含了日期时间的常见操作,如获取当前时间、日期计算、时间格式化等。这个...

    Flex3中用到的工具类包,含有json类

    描述中提到的“src”目录包含的是源码文件,这意味着你可以查看和学习这些工具类的实现细节,这对于理解JSON处理机制以及如何在自己的项目中应用这些工具类非常有帮助。而“lib”目录中的“swc”文件是Adobe的库文件...

    一个简单的JSON 数据格式转换类

    本篇文章将深入探讨如何创建一个简单的JSON数据格式转换类,并分析提供的两个源代码文件——`JsonUtil.java`和`Json.java`。 在Java中,处理JSON数据通常有多种库可供选择,如Gson、Jackson、Fastjson等。然而,...

    jfianldemo

    总结来说,"jfianldemo" 项目是学习和掌握 JFinal 3.1 的绝佳示例,它涵盖了 MVC 结构、插件系统、拦截器、AOP、性能优化以及工具类的使用等多个方面。通过对这个 demo 的深入研究,开发者不仅可以熟练运用 JFinal,...

    bean2json_v20200515.zip

    3. 使用工具提供的API,如`JsonUtil.beanToJson(SimpleBean bean)`,将Bean对象转换为JSON字符串。 4. 阅读"使用说明.java.txt"了解具体调用方式和注意事项。 由于工具只支持String和Long类型,对于复杂的数据结构...

    <<项目架构那点儿事>>——工具类,你喜欢你就拿去

    `java.util.Date`和`java.time`包中的类可能被大量使用,学习并熟练掌握这些API能够帮助我们更好地处理日期和时间问题。 3. **ReflectionUtils.java**: 反射是Java中强大的特性,允许运行时动态地访问类和对象。`...

    Android快速开发系列 10个常用工具类 程序源码

    以上10个工具类涵盖了Android开发中的多个关键领域,通过学习和使用这些源码,开发者可以提升开发效率,减少重复工作,同时也能深入了解Android系统内部的工作原理。通过访问提供的博客链接...

    flex json开发

    例如,使用`mx.rpc.json`包中的`JSON`类或`JSONUtil`类来解析和序列化JSON数据。 2. **JSON解析**: 当从服务器接收到JSON字符串时,可以使用`JSON.parse()`方法将字符串转换为ActionScript对象。例如: ```...

    Hutool+Wiki.zip

    其官方文档“Hutool+Wiki.pdf”包含了详尽的使用指南和实例,是学习和使用Hutool的宝贵资源。下面,我们将深入探讨Hutool工具类中的核心功能和应用场景。 一、Hutool简介 Hutool由一系列独立的模块组成,包括日期...

    AJXS flas教程06

    在Flash中,我们可以使用内置的XML类来解析和操作XML文档,或者使用JSONUtil等库来处理JSON格式的数据。 3. **XMLHttpRequest对象**: 虽然Flash不直接提供XMLHttpRequest对象,但可以通过Flash的Socket或URLLoader...

    SpringMVC可以用的工具类

    在学习和使用SpringMVC时,不断积累这些工具类并完善它们,可以使代码更加规范和高效。初学者可能一开始接触的工具类并不多,但随着经验的积累和项目的复杂度增加,会发现越来越多的场景需要自定义工具类来解决特定...

    Hutool的最强大全.zip

    Hutool的API大全`.chm`文件是一份详细的文档,其中包含了每个类的使用示例和方法说明,是学习和使用Hutool的重要参考资料。通过阅读这份文档,开发者可以快速上手并熟练掌握Hutool的使用,提升开发效率,减少代码量...

    flex操作数据的实例

    你可以使用Flex的XML类来解析和操作XML文档,或者使用JSONUtil或AS3CoreLib等库解析JSON数据。 3. **Collections**:Flex提供了一系列集合类,如ArrayCollection、ListCollectionView等,它们是数据绑定的主要载体...

Global site tag (gtag.js) - Google Analytics