1. 程式人生 > >封裝類與json的轉換的工具類JsonUtils

封裝類與json的轉換的工具類JsonUtils

使用了Google 的Gson類進行了封裝。
大家在使用的時候別忘了匯入下載google-gson-x.x.x-jar 包

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
/**
 * JsonUtils  
 * 能將封裝類或者封裝類的集合轉為JSON 
 * 能將JSON解析成封裝類 或者封裝類的集合
 * @author shaoduo
 */
public class JsonUtils { /** * 針對於bean 或者 List<bean>來說將這個 封裝物件轉為json字串 * @param obj * @return String */ public static <T> String pubOrPubsToJson(T t) { Gson gson = new Gson(); String jsonStr=gson.toJson(t); return jsonStr; } /** * 判斷是否資料需要解析成JsonStr * @param
retJsonStr * @return boolean */
public static boolean isNeedFromJsonToPub(String retJsonStr) { if(retJsonStr.length()>100) { return true; //System.out.println("是否需要解析::"+); } return false; } /** * 解析從伺服器端返回的字串轉為pub封裝型別 * @param
retJsonStr * @param obj */
public static <T> T jsonToPub(String jsonString, Class<T> cls) { T t = null; try { Gson gson = new Gson(); t = gson.fromJson(jsonString, cls); } catch (Exception e) { // TODO: handle exception } return t; } /** * 解析從伺服器端返回的字串轉為pubList封裝型別 * @param retJsonStr * @param obj */ public static <T> List<T> jsonToPubs(String jsonString, Class<T> cls) { List<T> list = new ArrayList<T>(); try { Gson gson = new Gson() ; list = gson.fromJson(jsonString, new TypeToken<List<T>>() { }.getType()); // list=(List<T>)JSONObject.toBean(jsonString,cls); } catch (Exception e) { } return list; } /** * 解析從伺服器端返回的字串轉為pubList封裝型別 * @param retJsonStr * @param obj */ public static <T> List<T> JsonToPubs(String json, Class<T[]> type) { T[] list = new Gson().fromJson(json, type); return Arrays.asList(list); } }

如何使用
1. 將集合List 的 PeoplePubList 轉為Json

String peopleListJsonStr=JsonUtils.pubOrPubsToJson(PeoplePubList);

2. 將封裝類 People 的 people 轉為Json

String peJsonStr= JsonUtils.pubOrPubsToJson(people);

3. peopleListJsonStr的json陣列解析為 PeopleList

PeopleList = JsonUtils.JsonToPubs(getJson, People[].class) ;

或者

PeopleList = JsonUtils.jsonToPubs(getJson, People[].class) ;

4.將PeopleStr的json陣列解析為People

people=jsonToPub(PeopleStr) ;