Всем привет, в этой статье я расскажу вам, как в Android Studio можно работать с json файлами.
Это будет первая статья, поскольку есть различия в работе с json
, существует массив с именем, или не именной, можно выводить данные в recyclerview
или listview
, поэтому будут различные подходы в парсинге.
Смотрите видео: Android Studio: получение JSON в RecyclerView и CardView. Урок № 1
Это будет первая статья, затем мы перейдём к парсингу JSON файлов с хостинга. Но это будет немного позже начнем с самого простого примера, локального файла в папке assets
.
Создадим новый проект, выбираем empty Activity
, давайте назовём приложение, например, Load Json from assets-01
.
Идёт подготовка проекта, в нем мы будем использовать не listView
будем использовать recyclerview
и cardview
.
А пока, если хотите можете поставить на паузу ролик и повторять то, что я пишу, и какие изменения делаю.
В файл build.gradle
проекта внесем записи
это recyclerview
и cardview
для вывода данных и синхронизируем проект.
Всё хорошо, теперь займемся работой с нашими слоями в activity_main.xml
введем RelativeLayout
а в него androidx.recyclerview.widget
с android:id="@+id/recyclerView"
.
Не будем делать фрагменты, в данном примере будет при запуске сразу отображаться нужная информация.
Создадим еще один слой назовем его row.xml
в нем androidx.cardview.widget.CardView
, LinearLayout
с двумя TextView
с android:id="@+id/name"
и android:id="@+id/email"
соответственно.
Хочу рассказать о json файле с которым будем работать, он состоит из идентификатора пользователя (id), имени пользователя (name) и электронной почты (email), то есть начнём с простейшего примера и далее будем это всё выводить.
Создадим в папке проекта New File Folder дикторию assets, и в ней нужно будет создать файл users.json.
Я заполнил его такими данными, название нашего массива – users
, в нем поля - id, name, email, чисто случайные данные, для наглядности. В принципе больше нечего с ним мы делать не будем.
Теперь поработаем в файле mainactivity.java. Нам нужно будет объявить переменную recyclerView
с типом RecyclerView
перед onCreate
, нужно связать список через findViewById(R.id.recyclerView)
.
Опишем LinearLayoutManager
:
и передадим управление recyclerView
Так же нужно будет создать новый класс Java New Class, назовем его HelperAdapter
для работы со списком, с данными json.
Он будет наследоваться от
MyViewClass
мы напишем позже.
Выглядит это всё достаточно сложно на первый взгляд, но потом можно будет использовать этот код, вносить небольшие правки в именах полей и тому подобном. Делается практически один раз и нам не нужно будет создать каждый раз для аналогичных проектов.
Создаем
для хранения имя и почты пользователей из users.json
файла, поле id использовать в этом примере не будем.
Также объявим переменную для контекста,
будем определять его для работы с mainactivaty
.
В конструкторе HelperAdapter
Соединим наши ранее объявленные переменный с классом, соответственно здесь присваиваются эти переменные.
В onCreateViewHolder
, мы сделаем layout
inflator
, будем передавать ему данные, укажем что у нас ключевым для вывода данных является row.xml
файл, в который будет все значения попадать.
Теперь давайте чтобы меньше было красных подчеркиваний, создадим всё-таки MyViewClass
, спустим его ниже, выглядит он будет вот так:
MyViewClass
наследуется от recyclerview
viewholder
объявляем переменные для имя и почты, в принципе это можно уже убрать, как бы понятно и передаем данные в пункт списка.
Нужно будет знать количество записей, сделать это можно чуть выше,
И ещё нам здесь осталось добавить onBindViewHolder
в котором при нажатии на сам список будет появляться всплывающий текст.
Теперь перейдём в файл mainactivity.java
, в ней будем работать с json объектами и массивами.
Нужно будет json файл получить в переменную jsonObject
. Поскольку у нас ещё не написана JsonDataFromAsset
функция, давайте её здесь вставлю, покажу и расскажу как она работает.
Поскольку будем базироваться в следующих видео тоже на похожем коде, то давайте разберемся как работает эта функция.
Мы передаем ей имя нашего json файла здесь у нас возвращается строковое значение, дальше разбор массива произойдет в цикле, try/catch
- обработка исключений, здесь мы пробегаем по всему массиву через
открываем его в inputstream
входящий поток, определяем размер, создаем массив байтов, передаём этот массив байтов через чтение из inputstream
.
Закрываем поток, в переменную json
в строковом виде в формате utf-8 наша функция JsonDataFromAsset
будет возвращать данные.
Теперь из объекта получаем массив, обратите внимание данную конструкцию нужно обрабатывать через try/catch
с исключениями, потому как здесь будет работать ещё цикл.
В цикле for
мы будем пробегать по-нашему массиву ну и соответственно
и передадим в name
и в email
наши значения.
Так ну и после мы вызываем
и зададим
Перед onCreate зададим два ArrayList
Как делали это в HelperAdapter
.
Ну вот и всё, разбираем файл, передаем в массив, получаем данные. Короче ничего сверхсложного)) Сохраняем проект, запускаем на эмуляторе.
Последние штрихи, исправим высоту
на
и LinearLayout
и сохранить.
Итак мы рассмотрели в двух словах, как работать с локальным json файлом, который находится в папке assets
, и вывели данные через recyclerview
и cardview
.
Существует способ создания json файла, в котором нет имени массива, а сразу идут через запятую блоки данных, и данный код с ним работать не будет.
С каким вариантом будете работать именно вы, решать вам, а в следующей статье и видео и рассмотрим именно этот случай, кроме того использовать будем listview для отображения данных.
В общем, если вы ничего не поняли, то ожидайте выход новых статей и видео и подписывайтесь на канал в YouTube.
Федя, Вася, Юра, Коля – всем привет)
Cкачать архив для ознакомления - Android Studio: получение JSON в RecyclerView и CardView. #1:
Полный текст activity_main.xml
Полный текст row.xml
Полный текст MainActivity.java
Полный текст HelperAdapter.java
Смотрите видео: Android Studio: получение JSON в RecyclerView и CardView. Урок № 1.
С уважением, авторы сайта Компьютерапия
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
Связанные статьи
Новые статьи
- Android приложение для начинающих гитаристов, пишем андроид приложение с аккордами для гитары - 05/09/2021 13:14
- Android Studio: получение JSON из базы данных с помощью PHP. Урок № 4 - 21/02/2021 07:12
- Android Studio: получение JSON в ListView с сервера на хостинге. Урок № 3 - 04/12/2020 21:46
- Android Studio: получение JSON в ListView и ArrayAdapter. Урок № 2 - 04/12/2020 20:39
Предыдущие статьи
- JS база данных и ANDROID STUDIO. Часть 3 - 15/12/2019 06:40
- Уведомления - Notifications в Android Studio - 16/04/2019 18:14
- Блютуз подключение в Android (проект для Arduino). Часть 1. - 12/04/2019 17:14
- Установка android studio и настройка SDK на VirtualBox с нуля - 19/01/2019 11:52
- Android Studio Как сделать виджет - игру Орел или решка - 08/04/2018 19:38
- Android Studio: Как сделать боковое меню с помощью NavigationDrawer - 05/04/2018 20:35
- Android Menu, как сделать меню андроид - 08/03/2018 14:44
- Создание подписанного приложения для android. Generate Signed APK. - 17/02/2018 09:50
- Android and Jsoup. Парсим вебсайт на вордпрессе. Расписание уроков - часть 3 - 15/01/2018 18:25
- Создание расписания уроков для андроид устройств. Часть 2. База данных SQLITE и фрагменты - 13/12/2017 19:49
- Создание расписания уроков для андроид устройств. Array Adapter для фрагментов. - 06/12/2017 15:07
- Создание фрагментов и использование вкладок для Android - 19/11/2017 05:16
- SplashScreen в Android: пишем заставку - 18/08/2017 19:06
- Диалог в андроид: пишем приложение в Android Studio - 13/08/2017 11:27
- Intent - Android приложение с несколькими Activity - 17/06/2017 17:05
- Создание списка ListView и ArrayAdapter в Android Studio - 09/06/2017 20:38
- Используем SharedPreferences для android - 05/05/2017 18:01
- Toast в Android Studio: пишем приложение с сообщениями - 04/05/2017 17:38
- Приложение-браузер для android устройств - 03/03/2017 16:56
- Android приложение за 5 минут. Часть 2 - 03/03/2017 16:33