Как создать список строк из JSONArray? - PullRequest
1 голос
/ 10 октября 2019

У меня есть объект jsonArray, такой как «Input» ниже. Я хотел бы "Выход". Не могли бы вы мне помочь?

Ввод:

"["a", "b", "c", "d"]"

Ввод:

["a", "b", "c", "d"]

//i need a simple list of string

Я нашел решение, но оно слишком сложное для простого преобразования ....

        val errorFields = jsonResponse.getJSONArray("my_array")
                .join(",")
                .replace("\"", "")
                .split(",")

Ответы [ 3 ]

1 голос
/ 10 октября 2019

С помощью синтаксического анализа вручную вы можете получить список строк из jsonArray с помощью -

val list = ArrayList<String>()
repeat(jsonArray.length){
    list.add(jsonArray.getString(it))
}

Если вы используете библиотеку синтаксического анализа gson, то вы можете получить список строк с помощью -

val list = gson.fromJson(jsonArray.toString(), Array<String>::class.java)?.toList()
0 голосов
/ 10 октября 2019

Вы можете сделать это в Koltin

var str = "[\"a\", \"b\", \"c\", \"d\"]" var items = Arrays.asList(str?.split("\\s*,\\s*")).flatten()

flatten необходимо, так как он возвращает список списков.

0 голосов
/ 10 октября 2019

Вы можете сделать это так:

    val stringList : MutableList<String> = arrayListOf()
    jsonArray?.let {
        for (i in 0 until it.length()) {
            stringList.add(jsonArray.getString(i))
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...