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-java
library and not the android one, then you can use JSONArray.toList()
其中returns一个列表你可以修改。
我对 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-java
library and not the android one, then you can use JSONArray.toList()
其中returns一个列表你可以修改。