【问题标题】:Kotlin JSONArray to MutableList<JSONObject>Kotlin JSONArray 到 MutableList<JSONObject>
【发布时间】:2018-11-11 14:20:38
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: arrays json kotlin mutable


    【解决方案1】:

    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 而不是android,那么您可以使用JSONArray.toList(),它会返回一个您可以修改的列表。

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    相关资源
    最近更新 更多