FastJson使用方法

jspet 11年前發布 | 107K 次閱讀 JSON開發包 fastjson
package com.commons.utils.json;

import com.tencent.stat.common.User;
import org.apache.commons.lang.StringUtils;

import java.security.Principal;
import java.security.acl.Group;
import java.util.Enumeration;
import java.util.List;
import  com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;


/**
 * Created by wei on 2014/8/8.
 *   JSON幫助類  這個可以做一個實例研究代碼,也可以作為一個工具類 去調用。
 *   FastJson是一個Json處理工具包,包括“序列化”和“反序列化”兩部分,Fastjson是一個Java語言編寫的高性能功能完善的JSON庫。Fastjson支持java bean的直接序列化。
 *   你可以使用com.alibaba.fastjson.JSON這個類進行序列化和反序列化。fastjson采用獨創的算法,將parse的速度提升到極致,超過所有json庫。

 FastJson速度最快,fastjson具有極快的性能,超越任其他的Java Json parser。
 FastJson功能強大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;無依賴。
 Fastjson API入口類是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類上的靜態方法直接完成。
 使用Fastjson首先在官網下載,然后應用到自己的項目中

 在需要解析JSON的Response中,需要導入如下四個包。
 import  com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONException;


 一.首先概述一下Fastjson中的經常調用的方法:  避免使用org.apche.json的包。

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

public class JSONHelper {
    //第一部分  javabean轉JSON  或者jsonstr
   
/**
     * 將一個 Object 或者List對象轉化為JSONObject或者JSONArray
     * @param ObjOrList  Object 或者List對象
     * @return
     */
    public static Object toJSON(Object ObjOrList)
    {
        Object obj=null;

        try {
            obj=JSON.toJSON(ObjOrList);

        } catch (Exception e) {
            e.printStackTrace();
        }

        return obj;
    }

   
/**
     * 將一個 Object 或者List對象轉化為JSOObject或者JSONArray
     * @param ObjOrList  Object 或者List對象 或者hashmap 但是如果是set  就會有問題
     * @return
     */
    public static String toJSONStr(Object ObjOrList)
    {
        String  jsonstr="";

        try {
            jsonstr=JSON.toJSONString(ObjOrList);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return jsonstr;
    }


    //第二部分字符串轉  obj list

   
/**
     * 字符串轉obj
     * @param jsonstr
     * @param clazz
     * @return
     */
    public static Object parseToObject(String jsonstr,Class<?> clazz)
    {
        Object parseObj=null;
        try {
            parseObj=JSON.parseObject(jsonstr, clazz);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return parseObj;
    }

    /**
     * 字符串轉list
     * @param jsonstr
     * @param clazz
     * @return
     */
    public static List<?> parseToList(String jsonstr,Class<?> clazz)
    {
        List<?> parseObj=null;
        try {
            parseObj=JSON.parseArray(jsonstr, clazz);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return parseObj;
    }


    //第三部分  字符串轉JSONObj  或者JSONArray

    /**
     * 字符串轉jsonobj
     * @param jsonstr
     * @return
     */
    public static JSONObject parseToJSONObejct(String jsonstr)
    {
        JSONObject parseObj=null;
        try {
            parseObj=JSON.parseObject(jsonstr);

        } catch (Exception e) {
            e.printStackTrace();
        }

        return parseObj;
    }

    /**
     * 字符串轉list
     * @param jsonstr
     * @return
     */
    public static JSONArray parseToJSONArray(String jsonstr)
    {
        JSONArray parseObj=null;
        try {
            parseObj=JSON.parseArray(jsonstr);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return parseObj;
    }



    //第四部分 com.alibaba包下 JSONObj 或者JSONArr 轉 javabean或者 java array
    /**
     *
     * @param jsonObj
     * @param obj
     * @return
     */
    public static Object parseToObject(JSONObject jsonObj,Class<?> obj)
    {
        Object parseObj=null;
        try {
            parseObj=JSON.parseObject(jsonObj + "", obj);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return parseObj;
    }

    /**
     *
     * @param jsonArr
     * @param obj
     * @return
     */
    public static List<?> parseToList(JSONArray jsonArr,Class<?> obj)
    {
        List list=null;

        try {
            list=JSON.parseArray(jsonArr + "", obj);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return list;
    }

    //第五部分 將android系統下的JSONObj 或者JSONArr 轉 javabean或者 javaarr
    //第五部分看似沒用不過想想特么的 用的人偶爾還是會用到系統的JSON對象  所以決定加下面這兩個方法
    /**
     *
     * @param jsonObj  android系統下的JSONObj
     * @param obj
     * @return
     */
    public static Object parseToObject(org.json.JSONObject jsonObj,Class<?> obj)
    {
        Object parseObj=null;
        try {
            parseObj=JSON.parseObject(jsonObj.toString(), obj);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return parseObj;
    }

    /**
     * @param jsonArr  android系統下的JSONArr
     * @param obj
     * @return
     */
    public static List<?> parseToList(org.json.JSONArray jsonArr,Class<?> obj)
    {
        List list=null;

        try {
            list=JSON.parseArray(jsonArr.toString(), obj);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return list;
    }

}

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