Aeg*_*tes 2 arrays json mutable kotlin
我对 Kotlin 相当陌生,目前我经常处理 JSON。
我从服务器收到一个 JSON 字符串,我将其解析JSONArray如下
var dataArray = JSONArray(String(resultVar!!))
Run Code Online (Sandbox Code Playgroud)
但据我所知,JSONArray它并没有真正给我足够的能力来改变它的数据JSONArray,如果我没记错的话,它迫使我创建一个新的。所以我想我应该使用MutableList<JSONObject>,这似乎已经足够了,但是我找不到将 JSONArray 或 String 解析到其中的方法。
我如何以简单的方式做到这一点?我是否必须遍历 JSONArray 逐个添加每个 JSONObject?
作为一个附带问题,我应该坚持使用 JSONArray 吗?有没有办法操作里面的数据?
就看起来而言,没有内置方法可以转换JSONArray为List. 但是,您可以使用 Kotlin 技巧使 Java 代码更短:
fun JSONArray.toMutableList(): MutableList<JSONObject> = MutableList(length(), this::getJSONObject)
Run Code Online (Sandbox Code Playgroud)
请注意,JSONArray可能具有不是JSONObject(但JSONArray例如)的值。如果您不确定数组是否只包含对象,请使用以下方法:
fun JSONArray.toMutableList(): MutableList<Any> = MutableList(length(), this::get)
Run Code Online (Sandbox Code Playgroud)
如果您使用的是JSON-java 库而不是 android库,那么您可以使用JSONArray.toList()which 返回一个您可以修改的列表。
| 归档时间: |
|
| 查看次数: |
4992 次 |
| 最近记录: |