FastJson生成和解析JSON數據

jopen 10年前發布 | 88K 次閱讀 JSON開發包 fastjson

    生成和解析JSON數據格式的包有很多種:Gson、json-smart、FastJson、jackjson等,FastJson是一個阿里巴巴的大神開發的開源的Json處理工具包,包括“序列化”和“反序列化”兩部分,號稱最快。但是我認為沒有最快,只有更快,只要這個功能滿足我的需求,速度不錯就行了,這就是我選擇工具的基本標準(不是特別追求性能...)。

    FastJson功能強大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;無依賴,能夠直接運行在Java SE 5.0以上版本;支持Android;開源 (Apache 2.0)。


下面簡單說一下FastJson在OOP中的基本使用(非常簡單),以下靜態方法都是常用的序列化操作,可以用JSON類名直接調用:

    public static final Object parse(String text); // 把JSON文本parse為JSONObject或者JSONArray   
    public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject      
    public static final  T parseObject(String text, Class clazz); // 把JSON文本parse為JavaBean   
    public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray   
    public static final  List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合   
    public static final String toJSONString(Object object); // 將JavaBean序列化為JSON文本   
    public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean序列化為帶格式的JSON文本   
    public static final Object toJSON(Object javaObject); //將JavaBean轉換為JSONObject或者JSONArray。  

     服務器端從數據庫中獲取到JavaBean(JAVA中的簡單java類,比如Person等)或者JavaBean的集合,用 JSON.toJSONString()將其轉成JSON數據格式并傳給客戶端,客戶端的解析就是用到上述的parseObject()方法,第一個參數是對象,第二個參數是JavaBean.class,而集合需要用到parseArray()方法,下面是一個工具類,對這些方法進行了封裝,可以直接引用:

    import java.util.ArrayList;  
    import java.util.List;  
    import java.util.Map;  

    import com.alibaba.fastjson.JSON;  
    import com.alibaba.fastjson.TypeReference;  

    public class FastJsonTools {  

      /** 
       * 用fastjson 將json字符串解析為一個 JavaBean 
       *  
       * @param jsonString 
       * @param cls 
       * @return 
       */  
      public static <T> T getBean(String jsonString, Class<T> cls) {  
        T t = null;  
        try {  
          t = JSON.parseObject(jsonString, cls);  
        } catch (Exception e) {  
          // TODO: handle exception  
          e.printStackTrace();  
        }  
        return t;  
      }  

      /** 
       * 用fastjson 將json字符串 解析成為一個 List<JavaBean> 及 List<String> 
       *  
       * @param jsonString 
       * @param cls 
       * @return 
       */  
      public static <T> List<T> getBeans(String jsonString, Class<T> cls) {  
        List<T> list = new ArrayList<T>();  
        try {  
          list = JSON.parseArray(jsonString, cls);  
        } catch (Exception e) {  
          // TODO: handle exception  
        }  
        return list;  
      }  

      /** 
       * 用fastjson 將jsonString 解析成 List<Map<String,Object>> 
       *  
       * @param jsonString 
       * @return 
       */  
      public static List<Map<String, Object>> getListMap(String jsonString) {  
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();  
        try {  
          // 兩種寫法  
          // list = JSON.parseObject(jsonString, new  
          // TypeReference<List<Map<String, Object>>>(){}.getType());  

          list = JSON.parseObject(jsonString,  
              new TypeReference<List<Map<String, Object>>>() {  
              });  
        } catch (Exception e) {  
          // TODO: handle exception  
        }  
        return list;  

      }  

    }  

jar包下載地址:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.alibaba%22%20AND%20a%3A%22fastjson%22

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!