• Json转换


    http://jc-dreaming.iteye.com/blog/1007157

    import java.util.Collection;   
       import java.util.HashMap;   
       import java.util.Map;   
       import net.sf.json.JSONArray;   
       import net.sf.json.JSONObject;   
         
       /**  
       * JSON和JAVA的POJO的相互转换  
       *  
       * @author ptah 2009-10-16 JSONUtil.java  
       */   
       public final class JSONUtil {   
         
       // 将String转换成JSON   
       public static String string2json(String key, String value) {   
       JSONObject object = new JSONObject();   
       object.put(key, value);   
       return object.toString();   
       }   
       // 将JSON转换成数组,其中valueClz为数组中存放的对象的Class   
       public static Object json2Array(String json, Class valueClz) {   
       JSONArray jsonArray = JSONArray.fromObject(json);   
       return JSONArray.toArray(jsonArray, valueClz);   
       }   
         
       // 将Collection转换成JSON   
       public static String collection2json(Object object) {   
       JSONArray jsonArray = JSONArray.fromObject(object);   
       return jsonArray.toString();   
       }   
         
       // 将JSON转换成Collection,其中collectionClz为Collection具体子类的Class,   
       // valueClz为Collection中存放的对象的Class   
       public static Collection json2Collection(String json, Class collectionClz,   
       Class valueClz) {   
       JSONArray jsonArray = JSONArray.fromObject(json);   
       return JSONArray.toCollection(jsonArray, valueClz);   
       }   
         
       // 将数组转换成JSON   
       public static String array2json(Object object) {   
       JSONArray jsonArray = JSONArray.fromObject(object);   
       return jsonArray.toString();   
       }   
       // 将Map转换成JSON   
       public static String map2json(Object object) {   
       JSONObject jsonObject = JSONObject.fromObject(object);   
       return jsonObject.toString();   
       }   
         
       // 将JSON转换成Map,其中valueClz为Map中value的Class,keyArray为Map的key   
       public static Map json2Map(Object[] keyArray, String json, Class valueClz) {   
       JSONObject jsonObject = JSONObject.fromObject(json);   
       Map classMap = new HashMap();   
         
       for (int i = 0; i < keyArray.length; i++) {   
       classMap.put(keyArray[i], valueClz);   
       }   
         
       return (Map) JSONObject.toBean(jsonObject, Map.class, classMap);   
       }   
         
       // 将POJO转换成JSON   
       public static String bean2json(Object object) {   
       JSONObject jsonObject = JSONObject.fromObject(object);   
       return jsonObject.toString();   
       }   
         
       // 将JSON转换成POJO,其中beanClz为POJO的Class   
       public static Object json2Object(String json, Class beanClz) {   
       return JSONObject.toBean(JSONObject.fromObject(json), beanClz);   
       }   
         
       // 将JSON转换成String   
       public static String json2String(String json, String key) {   
       JSONObject jsonObject = JSONObject.fromObject(json);   
       return jsonObject.get(key).toString();   
       }   
         
       }   
      import java.util.Collection;   
       import java.util.HashMap;   
       import java.util.Map;   
       import net.sf.json.JSONArray;   
       import net.sf.json.JSONObject;   
         
       /**  
       * JSON和JAVA的POJO的相互转换  
       *  
       * @author ptah 2009-10-16 JSONUtil.java  
       */   
       public final class JSONUtil {   
         
       // 将String转换成JSON   
       public static String string2json(String key, String value) {   
       JSONObject object = new JSONObject();   
       object.put(key, value);   
       return object.toString();   
       }   
       // 将JSON转换成数组,其中valueClz为数组中存放的对象的Class   
       public static Object json2Array(String json, Class valueClz) {   
       JSONArray jsonArray = JSONArray.fromObject(json);   
       return JSONArray.toArray(jsonArray, valueClz);   
       }   
         
       // 将Collection转换成JSON   
       public static String collection2json(Object object) {   
       JSONArray jsonArray = JSONArray.fromObject(object);   
       return jsonArray.toString();   
       }   
         
       // 将JSON转换成Collection,其中collectionClz为Collection具体子类的Class,   
       // valueClz为Collection中存放的对象的Class   
       public static Collection json2Collection(String json, Class collectionClz,   
       Class valueClz) {   
       JSONArray jsonArray = JSONArray.fromObject(json);   
       return JSONArray.toCollection(jsonArray, valueClz);   
       }   
         
       // 将数组转换成JSON   
       public static String array2json(Object object) {   
       JSONArray jsonArray = JSONArray.fromObject(object);   
       return jsonArray.toString();   
       }   
       // 将Map转换成JSON   
       public static String map2json(Object object) {   
       JSONObject jsonObject = JSONObject.fromObject(object);   
       return jsonObject.toString();   
       }   
         
       // 将JSON转换成Map,其中valueClz为Map中value的Class,keyArray为Map的key   
       public static Map json2Map(Object[] keyArray, String json, Class valueClz) {   
       JSONObject jsonObject = JSONObject.fromObject(json);   
       Map classMap = new HashMap();   
         
       for (int i = 0; i < keyArray.length; i++) {   
       classMap.put(keyArray[i], valueClz);   
       }   
         
       return (Map) JSONObject.toBean(jsonObject, Map.class, classMap);   
       }   
         
       // 将POJO转换成JSON   
       public static String bean2json(Object object) {   
       JSONObject jsonObject = JSONObject.fromObject(object);   
       return jsonObject.toString();   
       }   
         
       // 将JSON转换成POJO,其中beanClz为POJO的Class   
       public static Object json2Object(String json, Class beanClz) {   
       return JSONObject.toBean(JSONObject.fromObject(json), beanClz);   
       }   
         
       // 将JSON转换成String   
       public static String json2String(String json, String key) {   
       JSONObject jsonObject = JSONObject.fromObject(json);   
       return jsonObject.get(key).toString();   
       }   
         
       }   

    转载http://blog.toright.com/?p=397
    JSON Format
    JSON為輕量級的資料表示格式,比起 XML 鬆散許多且不需要定義描述檔,JSON網站 http://json.org/

    Json-lib API
    Json-lib 為在眾多處理 Jsob Format API 中實作功能比較多的一個套件,可由下列網址取得。

    http://json-lib.sourceforge.net/ 此外,Json-lib還需要以下 Library

    jakarta commons-lang 2.4
    jakarta commons-beanutils 1.7.0
    jakarta commons-collections 3.2
    jakarta commons-logging 1.1.1
    ezmorph 1.0.6
    JSON 與 POJO 轉換實作
    設計兩個Model

        Model.java  
          
        private String title;  
            private int num;  
            private Integer sort;  
            private Date date;  
            private String[] strArray;  
            private SubModel subModel;  
        SubModel.java  
          
        private String name;  
        Marshal 實作  
        Object2JSON.java  
          
        import java.util.Date;  
          
        import net.sf.json.JSONObject;  
          
        public class Object2JSON {  
          
            public static void main(String[] args) {  
                //產生Model  
                Model model = new Model();  
                model.setTitle("Master MOdel");  
                model.setNum(99);  
                model.setSort(10);  
                model.setDate(new Date());  
                model.setStrArray(new String[]{"str1","str2"});  
                SubModel subModel = new SubModel();  
                subModel.setName("MySubModel");  
                model.setSubModel(subModel);  
                //轉換為JSON  
                String json = JSONObject.fromObject(model).toString();  
                //顯示XML  
                System.out.println(json);  
            }  
          
        }  
        Unmarshal 實作  
        JSON2Object.java  
          
        import net.sf.json.JSONObject;  
          
        public class JSON2Object {  
          
            public static void main(String[] args) {  
                String json = "{"date":{"date":27,"day":2,"hours":15,"minutes":30,"month":9,"seconds":35,"time":1256628635421,"timezoneOffset":-480,"year":109},"num":99,"sort":10,"strArray":["str1","str2"],"subModel":{"name":"MySubModel"},"title":"Master MOdel"}";  
                //轉換JavaBean  
                Model model = (Model)JSONObject.toBean( JSONObject.fromObject( json ), Model.class );  
                //顯示內容  
                System.out.println("Title:"+model.getTitle());  
                System.out.println("Num:"+model.getNum());  
                System.out.println("Sort:"+model.getSort());  
                System.out.println("Date:"+model.getDate());  
                System.out.println("SubModel:"+model.getSubModel());  
                System.out.println("SubModel[Name]:"+model.getSubModel().getName());  
            }  
          
        }  
    /**
    *
    
    Json-lib 結論
    過測試之後發現 Json 對 Array 是支援的,
    但是對於 List 與 Hashtable 的 Unmarshal 卻是不支援。
    假設 Json 未來成為 Web Service 重要的傳輸格式,
    那麼實作 Json 更高階的 Unmarshal 是絕對必要的工作。
    */
  • 相关阅读:
    2020软件工程作业04
    2020软件工程作业03
    2020软件工程作业02
    2020软件工程作业01
    Linux操作系统分析-课程学习总结报告
    结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程
    深入理解系统调用
    基于mykernel 2.0编写一个操作系统内核
    交互式多媒体图书平台的设计与实现
    码农放入自我修养之必备技能学习笔记
  • 原文地址:https://www.cnblogs.com/wangchuanfu/p/6182255.html
Copyright © 2020-2023  润新知