Преобразование JSONarray в ArrayList
Я загружаю строку JSON и преобразовываю ее в JSONArray. Я помещаю его в список и должен уметь удалять из этого списка позже, а поскольку JSONArray не имеет метода .remove (спасибо Обаме), я пытаюсь преобразовать его в arraylist.
Вот мой JSON (array.toString ()):
Мне нужно получить его в массив и иметь возможность вызывать строки по их соответствующим клавишам. Цените любую помощь!
Я сделал это, используя Gson ( Library by Google ) для класса CustomModel :
Зачем использовать этот код:
- Быстрая обработка
- Нет необходимостиписать методы / функцииGetter Setter для каждого объекта .
- Короткий код
- Легко понять
Добавьте compile ‘com.google.code.gson:gson:2.2.4’ в блок зависимостей build.gradle .
Определить строку Json :
ContactModel.java :
Код для преобразования JSONArray в ArrayList :
Вам нужно импортировать java.lang.reflect.Type; :
Надеюсь, что это поможет вам.
Вместо преобразования строки JSON в ArrayList или даже Map вы можете просто создать сам JSONObject . Этот объект имеет возможность получать строковые значения по ключу , как вы хотите, а также удалять объекты .
Чтобы создать JSONObject из правильно отформатированной строки JSON, вы просто вызываете соответствующий конструктор .
Попробуйте этот путь Просто пройдите через это, создав свой собственный массив. Этот код предполагает, что это массив строк, его не должно быть сложно модифицировать в соответствии с вашей конкретной структурой массива.
У меня быстрое решение. Просто создайте файл ArrayUtil.java
Чтобы сделать его удобным, используйте POJO.
Источник
Android Studio: получение JSON в ListView и ArrayAdapter. Урок № 2
Всем привет, и сегодня мы продолжим рассматривать возможности работы с json файлами в Android Studio.
На этот раз будем использовать listView для отображения данных, хочу напомнить, что в прошлом видео мы работали с recyclerview и cardview , и сегодня будем делать макет попроще, будет иной принцип подключения файла json со списком.
Подобный пример можно использовать в качестве различных справочных андроид приложений, для курсовых и дипломных работ, храня данные в локальном файле, так что приятного просмотра, будет интересно.
Смотрите видео: Android Studio: получение JSON в ListView и ArrayAdapter. Урок № 2
Давайте создадим новый проект с пустой активностью, дадим названием, как вы помните в прошлый раз проект назывался Load Json from assets -01 , назовем также с цифрой два, Load Json from assets -02 .
Проект у нас загружен, и давайте создадим папку assets для json файла, создадим новый файл users.json, на этот раз вставим значение, но без имени массива users , сейчас поработаем с безымянном массивом, позже я покажу как работать с этим файлом, сохраним, закроем файл.
Откроем activity_main.xml , заменим виджет ConstraintLayout на RelativeLayout , а TextView изменения на ListView . Уберём отсюда всё лишнее и добавим Android:id ListView .
Список ListView будет для общего плана, а для пунктов списка создадим в папке layout ещё один Resource File, как и в прошлом примере назавем его row.xml . Заменим в разметке RelativeLayout , id не нужен, добавим отступы 6dp.
Внутри RelativeLayout добавим LinearLayout , ориентация – вертикальная, внутренний отступ – 5dp.
Так же добавим два TextView с id, name и email, соответственно, размер текста – 30sp.
Для RelativeLayout и LinearLayout установим ширину — match_parent , высоту — wrap_content , с разметкой закончили.
Переходим в MainActivity , объявим переменную типа ListView – listview , обратимся к элементу экрана из кода через findviewbyid
Давайте создадим новый класс которая нас будет отвечать за работу с данными в json файле и списком.
Назовем его UserAdapter , адаптер будет наследоваться от
Нам нужна будет int переменная listLayout , ArrayList list и как уже говорилось контекст, Context context .
Далее напишем конструктор
Напишем присвоение переменных
Ну теперь нам нужно будет сделать, как мы в прошлый раз делали, получение нашего View , создадим Layout inflator , который будет обращаться к объекту, к нашему файлу разметки row.xml для отображения пунктов списка.
Вот так у нас выглядит наш обработчик, здесь получилось, что мы меньше писали кода в классе UserAdapter чем в прошлом примере.
Теперь перейдем в mainactivity и продолжим, поскольку у нас массив users.json безымянный, нам проще обратиться к нашему файлу, чем если бы он имел имя.
Пишем в onCreate
И ниже, вне onCreate напишем функцию getJSonData
Объявим переменную и проинициализируем ее.
В блоке обработки исключений try/catch получим содержимое файла
Источник
Учебник по JSON для Android: создание и анализ данных JSON
В этом руководстве описывается, как использовать JSON с Android . JSON расшифровывается как (Java Script Object Notation). Это простой и легкий формат обмена данными, который может быть легко прочитан людьми и машинами. JSON — это текстовый формат, не зависящий от языка. Он представляет данные в текстовом формате, чтобы их можно было легко проанализировать.
Введение в JSON
JSON использует две разные структуры:
- Коллекция пары имя / значение
- массив
Первую структуру можно использовать для моделирования объекта, поскольку объект представляет собой набор атрибутов, которые содержат некоторые значения. Массив может использоваться для моделирования списка, массива объектов и так далее. Таким образом, используя эти две структуры, мы можем передавать данные между двумя машинами простым и эффективным способом. В последнее время JSON пользуется большим успехом, и большинство доступных API поддерживает формат JSON. Давайте посмотрим, как мы можем представлять данные в формате JSON.
Объект в JSON моделируется с помощью , а его атрибуты можно моделировать с помощью name: value pair.Value, в свою очередь, может быть объектом, массивом или «простым» значением, например, примитивным значением (int, Строка, логическое значение и т. Д.).
Так что если у нас есть, например, класс Java, как:
Источник