Есть ли способ преобразовать массив JSON в обычный массив Java для привязки данных Android ListView?
Переведено автоматически
Ответ 1
ArrayList<String> list = newArrayList<String>(); JSONArrayjsonArray= (JSONArray)jsonObject; if (jsonArray != null) { intlen= jsonArray.length(); for (int i=0;i<len;i++){ list.add(jsonArray.get(i).toString()); } }
Ответ 2
Если у вас еще нет объекта JSONArray, вызовите
JSONArrayjsonArray=newJSONArray(jsonArrayString);
Затем просто выполните цикл, создав свой собственный массив. Этот код предполагает, что это массив строк, его не должно быть сложно изменить в соответствии с вашей конкретной структурой массива.
List<String> list = newArrayList<String>(); for (int i=0; i<jsonArray.length(); i++) { list.add( jsonArray.getString(i) ); }
Ответ 3
Вместо использования встроенной org.json библиотеки попробуйте использовать Jackson или GSON, где это однострочник. С помощью Jackson, например:
List<String> list = newObjectMapper().readValue(json, List.class); // Or for array: String[] array = mapper.readValue(json, String[].class);
Ответ 4
Возможно, это всего лишь обходной путь (не очень эффективный), но вы могли бы сделать что-то вроде этого: