package com.doumee.lib_coremodel.http.utils;
|
|
|
import com.google.gson.Gson;
|
import com.google.gson.JsonArray;
|
import com.google.gson.JsonElement;
|
import com.google.gson.JsonParser;
|
import com.google.gson.JsonSyntaxException;
|
import com.google.gson.reflect.TypeToken;
|
|
import java.lang.reflect.Type;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
import timber.log.Timber;
|
|
public class GsonTools {
|
|
public GsonTools() {
|
// TODO Auto-generated constructor stub
|
}
|
|
public static <T> T changeGsonToBean(String gsonString, Class<T> cls) {
|
Gson gson = new Gson();
|
T t=null;
|
//t = gson.fromJson(gsonString, cls);
|
try {
|
Timber.tag("HTTP==>").d("Response: "+cls.getSimpleName()+"=== "+gsonString);
|
t = gson.fromJson(gsonString, cls);
|
} catch (JsonSyntaxException e) {
|
e.printStackTrace();
|
}
|
return t;
|
}
|
|
public static <T> T changeGsonToBean(String gsonString, Type typeOfT) {
|
Gson gson = new Gson();
|
T t=null;
|
//t = gson.fromJson(gsonString, cls);
|
try {
|
Timber.tag("HTTP==>").d("Response: === "+gsonString);
|
t = gson.fromJson(gsonString, typeOfT);
|
} catch (JsonSyntaxException e) {
|
e.printStackTrace();
|
}
|
return t;
|
}
|
|
public static <T> List<T> changeGsonToList(String gsonString, Class<T> cls) {
|
Gson gson = new Gson();
|
List<T> list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
|
}.getType());
|
return list;
|
}
|
|
public static <T> String changeGsonToJson(T t) {
|
Gson gson = new Gson();
|
return gson.toJson(t);
|
}
|
|
public static <T> List<T> fromJsonArray(String json, Class<T> clazz) throws Exception {
|
List<T> lst = new ArrayList<T>();
|
|
JsonArray array = new JsonParser().parse(json).getAsJsonArray();
|
for(final JsonElement elem : array){
|
lst.add(new Gson().fromJson(elem, clazz));
|
}
|
return lst;
|
}
|
|
|
|
public static <T> List<Map<String, T>> changeGsonToListMaps(
|
String gsonString) {
|
List<Map<String, T>> list = null;
|
Gson gson = new Gson();
|
list = gson.fromJson(gsonString, new TypeToken<List<Map<String, T>>>() {
|
}.getType());
|
return list;
|
}
|
|
public static <T> Map<String, T> changeGsonToMaps(String gsonString) {
|
Map<String, T> map = null;
|
Gson gson = new Gson();
|
map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
|
}.getType());
|
return map;
|
}
|
|
}
|