Kotlin JSONArray 到 MutableList<JSONObject>

Kotlin JSONArray to MutableList<JSONObject>

我对 Kotlin 还很陌生,目前我经常处理 JSON。

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

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

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

如何以简单的方式做到这一点?我是否必须遍历 JSON 数组逐一添加每个 JSON 对象?

As a side question, should I just stick to JSONArray? Is there a way to manipulate the data inside it?

seems而言,没有将JSONArray转换为List的内置方法。 但是,您可以使用 Kotlin 技巧使 java 代码更短:

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

请注意,JSONArray 的值可能不是 JSONObject(例如 JSONArray)。如果您不确定数组只包含对象,请使用以下方法:

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

如果你使用的是JSON-javalibrary and not the android one, then you can use JSONArray.toList()其中returns一个列表你可以修改。