Kotlin JSONArray для MutableList <JSONObject> - PullRequest
0 голосов
/ 11 ноября 2018

Я довольно новичок в Kotlin, и сейчас я много работаю с JSON.

Я получаю строку JSON с сервера, которую я анализирую в JSONArray, как показано ниже

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

Но, насколько я видел, JSONArray на самом деле не дает мне достаточно возможностей для изменения своих данных, это вынуждает меня создавать новый JSONArray, если я не ошибаюсь. Поэтому я подумал, что мне следует использовать MutableList<JSONObject>, что кажется достаточно хорошим, но я не могу найти способ разобрать JSONArray или String в него.

Как мне сделать это простым способом? Нужно ли перебирать JSONArray, добавляя каждый JSONObject один за другим?

В качестве дополнительного вопроса, я должен просто придерживаться JSONArray? Есть ли способ манипулировать данными внутри него?

1 Ответ

0 голосов
/ 11 ноября 2018

Насколько кажется , встроенного метода для преобразования 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 библиотеку , а не Android, тогда вы можете использовать JSONArray.toList(), которая возвращает список, который вы можете изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...