首页 > Java > java教程 > 如何在运行时将 Gson TypeToken 与动态 ArrayList 项类型结合使用?

如何在运行时将 Gson TypeToken 与动态 ArrayList 项类型结合使用?

Patricia Arquette
发布: 2024-12-05 17:16:11
原创
350 人浏览过

How to Use Gson TypeToken with Dynamic ArrayList Item Types at Runtime?

运行时具有动态 ArrayList 项类型的 Gson TypeToken

使用 JSON 时,通常使用 Gson 将 JSON 数据转换为类型化对象。但是,您可能会遇到这样的情况:您需要解析的 ArrayList 项的类型是在运行时使用反射动态确定的。在这种情况下,传统的 TypeToken 方法可能会达不到要求。

例如,考虑以下代码:

Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
登录后复制

此代码将 JSON 字符串转换为 myClass 对象列表。但是,如果 ArrayList 的项类型应该动态确定怎么办?

为了实现这一点,您可以利用 Gson 版本 2.8.0 中引入的新功能:TypeToken.getParameterized。此方法允许您创建具有指定参数化类型的 TypeToken。

使用方法如下:

private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
    Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, type).getType();
    return typeOfObjectsListNew;
}
登录后复制

通过传递 ArrayList 类和动态项类型类类型作为参数对于 TypeToken.getParameterized,您可以创建一个 TypeToken,它表示具有所需项类型的 ArrayList。然后可以使用这个 TypeToken 作为 Gson.fromJson 的参数,以正确地将 JSON 数据解析为所需的列表类型。

以上是如何在运行时将 Gson TypeToken 与动态 ArrayList 项类型结合使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板