使用Gson,把json转成list或数组,主要是通过Gson类中的fromJson(String json,Type typeOfT)这个方法。
重点就是怎么获取这个typeOfT。
我知道的有两种方式:
方式一:
TypeToken<List<String>> type = new TypeToken<List<String>>(){};
Type typeOfT = type.getType();
这种方式简单,但是不适合写工具类,要对不同的Object写TypeToken,多了就比较烦了。
方式二:
TypeToken提供了getArray(Type componentType)这个方法,而Class又实现了Type接口,所以写工具类就方便多了。
public static Object[] json2ObjectArray(String json, Class cls) {
TypeToken<?> array = TypeToken.getArray(cls);
Gson gson = new Gson();
Object[] objects = gson.fromJson(json, array.getType());
return objects;
}
这里获取的是数组,虽然不是list,但是转换也是很方便的。