- 数组转换为 Json 字符串:
GsonUtils.toJson(itemListBean.getImgs())
- json 字符串转换为数组
Gson().fromJson(goodsDbBean.getImgs(), String[].class)
- Json 转换为已知实体类
GsonUtils.parseJSON(result, AFileInfoBean.class);
- Json 转换为已知实体类集合
List<String> imgList = Arrays.asList(new Gson().fromJson(goodsDbBean.getImgs(), String[].class))
- Json 转换为 未知实体类
HashMap params = GsonUtils.parseJSON(jsonParams, new TypeReference<HashMap<String, String>>() {}.getType());
GsonUtils.java
public class GsonUtils {
public static <T> T parseJSON(String json, Class<T> clazz) {
Gson gson = GsonFactory.getSingletonGson();
T info = gson.fromJson(json, clazz);
return info;
}
public static <T> T parseJSON(String json, Type type) {
Gson gson = GsonFactory.getSingletonGson();
T info = gson.fromJson(json, type);
return info;
}
public static <T> List<T> jsonToList(String json, Class<? extends T[]> clazz) {
Gson gson = GsonFactory.getSingletonGson();
T[] array = gson.fromJson(json, clazz);
return Arrays.asList(array);
}
/**
* @param json
* @param clazz
* @return
*/
public static <T> ArrayList<T> jsonToArrayList(String json, Class<T> clazz) {
ArrayList<T> arrayList = new ArrayList<>();
try {
Type type = new TypeToken<ArrayList<JsonObject>>() {
}.getType();
ArrayList<JsonObject> jsonObjects = GsonFactory.getSingletonGson().fromJson(json, type);
for (JsonObject jsonObject : jsonObjects) {
arrayList.add(GsonFactory.getSingletonGson().fromJson(jsonObject, clazz));
}
} catch (Exception e) {
e.printStackTrace();
}
return arrayList;
}
private GsonUtils() {
}
public static String toJson(Object obj) {
try {
return GsonFactory.getSingletonGson().toJson(obj);
} catch (OutOfMemoryError error) {
NLog.e("GsonUtils", "数据量过大,使用FastJson 解析");
return JSON.toJSONString(obj);
}
}
}