Kotlin JSONArray 到 MutableList<JSONObject>

Kotlin JSONArray to MutableList<JSONObject>

提问人:Aegletes 提问时间:11/11/2018 更新时间:6/7/2020 访问量:6655

问:

我是 Kotlin 的新手,目前我经常与 JSON 打交道。

我从服务器收到一个 JSON 字符串,我将其解析为如下所示JSONArray

var dataArray = JSONArray(String(resultVar!!))

但据我所知,它并没有真正给我足够的能力来改变它的数据,如果我没记错的话,它迫使我创建一个新的。所以我想我应该使用 ,这似乎已经足够好了,但我找不到将 JSONArray 或 String 解析到其中的方法。JSONArrayJSONArrayMutableList<JSONObject>

如何以简单的方式做到这一点?我是否必须遍历 JSONArray 逐个添加每个 JSONObject?

作为一个附带问题,我应该坚持使用 JSONArray 吗?有没有办法操纵其中的数据?

阵 列 JSON的 科特林 可变

评论


答:

6赞 Yoav Sternberg 11/12/2018 #1

就目前而言,没有内置方法可以转换为 . 但是,您可以使用 Kotlin 技巧来缩短 java 代码:JSONArrayList

fun JSONArray.toMutableList(): MutableList<JSONObject> = MutableList(length(), this::getJSONObject)

请注意,该值可能不是(但例如)。如果不确定数组仅包含对象,请使用以下方法:JSONArrayJSONObjectJSONArray

fun JSONArray.toMutableList(): MutableList<Any> = MutableList(length(), this::get)

如果您使用的是库而不是 android 库,那么您可以使用 JSONArray.toList(),它返回一个可以修改的列表。JSON-java

评论

0赞 Aegletes 11/12/2018
非常感谢!