Android Gson工具类
public class GsonUtils {
/**
* @param object bean对象
* @return String json字符串
* @Title toJson
* @description 将javabean对象转成json字符串
*/
public static String toJson(Object object) {
Gson gson = new Gson();
String jsonString = gson.toJson(object);
return jsonString;
}
/**
* @param jsonString 要转换的json字符串
* @param cls bean对象的class
* @return T bean对象
* @Title changeJsonToBean
* @description 将json字符串转成bean对象
*/
public static <T> T changeJsonToBean(String jsonString, Class<T> cls) {
Gson gson = new Gson();
T t = gson.fromJson(jsonString, cls);
return t;
}
/**
* @param jsonString 要转换的json字符串
* @param cls bean对象的class
* @return T bean对象, 可能为空
* @Title changeJsonToBean
* @description 将json字符串转成bean对象
*/
@Nullable
public static <T> T changeJsonToBeanSafely(String jsonString, Class<T> cls) {
try {
return changeJsonToBean(jsonString, cls);
} catch (Exception ignore) {
}
return null;
}
/**
* @Title changeJsonToList
* @description 将json串转成list集合
* 这个类转换的有问题,请使用fromJsonList方法
*/
@Deprecated
public static <T> List<T> changeJsonToList(String jsonString, Class<T> cls) {
Gson gson = new Gson();
List<T> list = gson.fromJson(jsonString, new TypeToken<List<T>>() {
}.getType());
return list;
}
/**
* 解析列表
*/
public static <T> ArrayList<T> fromJsonList(String json, Class<T> cls) {
Gson gson = new Gson();
ArrayList<T> list = new ArrayList<T>();
JsonArray array = new JsonParser().parse(json).getAsJsonArray();
for (final JsonElement elem : array) {
list.add(gson.fromJson(elem, cls));
}
return list;
}
/**
* 解析列表
*/
@Nullable
public static <T> ArrayList<T> fromJsonListSafely(String json, Class<T> cls) {
try {
return fromJsonList(json, cls);
} catch (Exception e) {
}
return null;
}
/**
* 解析Map
*/
public static <T> List<Map<String, T>> changeJsonToListMaps(
String jsonString) {
List<Map<String, T>> list = null;
Gson gson = new Gson();
list = gson.fromJson(jsonString, new TypeToken<List<Map<String, T>>>() {
}.getType());
return list;
}
/**
* 解析map
*/
@Nullable
public static <T> List<Map<String, T>> changeJsonToListMapsSafely(String jsonString) {
try {
return changeJsonToListMaps(jsonString);
} catch (Exception e) {
}
return null;
}
/**
* 解析MAP
*/
public static <T> Map<String, T> changeJsonToMaps(String jsonString) {
Map<String, T> map = null;
Gson gson = new Gson();
map = gson.fromJson(jsonString, new TypeToken<Map<String, T>>() {
}.getType());
return map;
}
/**
* 解析MAP
*/
@Nullable
public static <T> Map<String, T> changeJsonToMapsSafely(String jsonString) {
try {
return changeJsonToMaps(jsonString);
} catch (Exception e) {
}
return null;
}
}