日常开发过程中,Json是我们最为常用的一种数据格式,将Json转换为对象是我们开发中非常频繁的一种操作,Gson是一种非常棒的Json解决方案,但是如果涉及对象中存在泛型对象的时候,在解析内部对象的时候,就会报 com.google.gson.internal.StringMap cannot be cast to xxx 这个错误,这个时候我们该怎么办呢?下面我们就来展示一种非常简单好用的方案:
示例一:对象中存在泛型对象:
public static void main(String[] args) {
String json = "";
Gson gson = new Gson();
APIResponse<T> response = gson.fromJson(json, new TypeToken<APIResponse<T>>(){}.getType());
}
示例二:对象在List中的Json解析
public static void main(String[] args) {
Gson gson = new Gson();
List<Integer> integerList = new ArrayList<>();
integerList.add(2);
integerList.add(5);
integerList.add(10);
List<Integer> result;
String json = gson.toJson(integerList);
result = gson.fromJson(json,new TypeToken<List<Integer>>(){}.getType());
for (Integer integer : result) {
System.out.println(integer);
}
}