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