Kotlin JSONArray到MutableList <jsonobject>

时间:2018-11-11 14:20:38

标签: arrays json kotlin mutable

我对Kotlin来说还很陌生,目前我正在处理JSON。

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

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

但是据我所知JSONArray并没有真正为我提供足够的功能来更改其数据,如果我没有记错的话,它会迫使我创建一个新的JSONArray。因此,我认为我应该使用MutableList<JSONObject>,这似乎已经足够好了,但是我找不到将JSONArray或String解析为它的方法。

我该如何轻松地做到这一点?我是否必须遍历JSONArray逐个添加每个JSONObject?

  

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

1 个答案:

答案 0 :(得分:2)

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的Android,则可以使用JSONArray.toList(),它返回可以修改的列表。