import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 封装的GSON解析工具类,提供泛型参数
*/
public class GsonUtil {
/**
* 将Json数据解析成相应的映射对象
* @param clazz
* @param json
* @return
*/
public static Object getInstanceByJson(Class<?> clazz, String json)
{
Object obj = null;
Gson gson = new Gson();
obj = gson.fromJson(json, clazz);
return obj;
}
/**
* 将Json数据解析成相应的映射对象集合
* @param json
* @param clazz
* @return
*/
public static <T> List<T> jsonToList(String json, Class<T[]> clazz)
{
Gson gson = new Gson();
T[] array = gson.fromJson(json, clazz);
return Arrays.asList(array);
}
/**
* 将Json数据解析成相应的映射对象集合
* @param json
* @param clazz
* @return
*/
public static <T> ArrayList<T> jsonToArrayList(String json, Class<T> clazz)
{
Type type = new TypeToken<ArrayList<JsonObject>>()
{}.getType();
ArrayList<JsonObject> jsonObjects = new Gson().fromJson(json, type);
ArrayList<T> arrayList = new ArrayList<>();
for (JsonObject jsonObject : jsonObjects)
{
arrayList.add(new Gson().fromJson(jsonObject, clazz));
}
return arrayList;
}
/**
* 将对象解析成Json数据
* @param t
* @return json数据
*/
public static <T> String ClassToJson(T t){
Gson gson = new Gson();
return gson.toJson(t);
}
}