標籤:android json gson 對象 object
在用戶端與伺服器之間進行資料轉送,一般採用兩種資料格式,一種是xml,一種是json。這兩種資料交換形式各有千秋,比如使用json資料格式,資料量會比較小,傳輸速度快,放便解析,而採用xml資料格式,如果使用SAX解析方式,則可以一邊載入一邊解析,對於資料量比較大的應用,比較適合。今天主要整理一下使用Gson解析json格式字串的簡單使用。
首先,必須匯入外部包
/** * * @author ZhaoKaiQiang * * @time 2014年5月4日 */public class JSONParser {protected static Gson gson = new Gson();/** * 任意對象轉換為字串 * * @param obj * 任意對象,可以是任何實體類,Map<?,?>,List<?>介面的實現 * @return */public static String toString(Object obj) {return gson.toJson(obj);}/** * 標準JSON字串還原序列化為對象。 * * @param jsonString * json字串 * @param type * 類型反射(Class<?>)或反射令牌(TypeToken) * @return */public static Object toObject(String jsonString, Object type) {jsonString = jsonString.replace(" ", "");jsonString = jsonString.replace("﹠nbsp", "");jsonString = jsonString.replace("nbsp", "");jsonString = jsonString.replace("&", "");jsonString = jsonString.replace("&", "");jsonString = jsonString.replace("amp", "");if (type instanceof Class<?>) {try {return gson.fromJson(jsonString, (Class<?>) type);} catch (JsonSyntaxException e) {e.printStackTrace();return null;}} else if (type instanceof Type) {try {return gson.fromJson(jsonString, (Type) type);} catch (JsonSyntaxException e) {e.printStackTrace();return null;}} else {throw new RuntimeException("只能是Class<?>或者通過TypeToken擷取的Type類型");}}}