问一下GSON解析JSON问题?
关注者
38被浏览
32,90717 个回答
造成这种问题的原因是:泛型在
编译期类型被擦除
导致的,解决方法:
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;
}
前言
大家好,我是小彭。
Gson 是 Google 推出的 Java Json 解析库,具有接入成本低、使用便捷、功能扩展性良好等优点,想必大家都很熟悉了。在这篇文章里,我们将讨论 Gson 的基本用法和以及主要流程的源码分析。
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。
小彭的 Android 交流群 02 群已经建立啦,扫描文末二维码进入~
学习路线图:
1. Gson 的基本使用
Gradle 依赖
dependencies {
implementation 'com.google.code.gson:gson:2.10'
}
1.1 GsonBuilder 配置项
Gson 类是整个库的核心 API,在进行任何序列化或反序列化之前,我们都需要获得一个 Gson 对象。可以直接 new 创建默认配置的 Gson 对象,也可以使用 GsonBuilder 构造者配置 Gson 对象。
事实上,一个 Gson 对象代表一个 Gson 工作环境,