如何使用 Gson 将 JSONArray 转换为 List?

Posted

技术标签:

【中文标题】如何使用 Gson 将 JSONArray 转换为 List?【英文标题】:How to convert JSONArray to List with Gson? 【发布时间】:2013-10-08 15:52:02 【问题描述】:

在我的 android 项目中,我试图将接收到的 JSONArray 转换为列表。在this SO answer 的帮助下,我走得更远了。我现在有以下代码:

Gson gson = new Gson();
JSONArray jsonArray = NetworkUtilities.getData("mymodeldata");
Type listType = new TypeToken<List<MyModel>>().getType();
List<MyModel> myModelList = gson.fromJson(jsonArray, listType);

不幸的是,它在最后一行抱怨 Gson 类型中的 fromJson(String, Type) 方法不适用于参数 (JSONArray, Type)。我真的不知道如何解决这个问题。

有人知道我该如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

如果您在那里看到答案,您会注意到fromJson() 方法中的第一个参数是String(json 对象)。尝试在 JsonArray 上使用 toString(),如下所示:-

List<MyModel> myModelList = gson.fromJson(jsonArray.toString(), listType);

【讨论】:

@kramer65:如果对你有帮助,请采纳! @R.J 它给了我could be refactored into a named _static_ inner class SIC_INNER_SHOULD_BE_STATIC_ANON 如何解决它

以上是关于如何使用 Gson 将 JSONArray 转换为 List?的主要内容,如果未能解决你的问题,请参考以下文章

jsonObject和JsonArray转化String

无法将字符串转换为 JsonArray

java如何遍历json 请具体点

Gson 中 JsonArray添加JsonObject覆盖前面了

Java中对jsonArray的排序,使用的是Gson

如何使用骆驼杰克逊将 JSONArray 转换为对象列表