Reading json file android

Android — How to Read and Write (Parse) data from JSON File ?

Mar 15, 2020 · 4 min read

How to Insert, Update and Delete the data available in JSON File in Android ?

Android provides several ways of dealing with app data within the system or local storage. We are going to be dealing with app-specific storage of data in directory available in Internal or External Storage of system.

  • Internal Storage : Sensitive data, No other application access it.
  • External Storage : Other application can access it like Images.

What we are going to do ?

We will generate a JSON file, which will be stored in Internal storage of application. From android application user will add( WRITE) data, which will be converted into JSON format(JSON Object) and then stored in JSON file.

We w i ll access( READ) the data from JSON file and converted into app usable format like string, arrays etc.

We will also UPDATE the data from JSON file and save it back to JSON file.

We will also perform the DELETION operation on JSON file data/Objects.

Data will be taken in terms of Java Object and transferred to JSON File.

Источник

Kotlin Android – Read JSON file from assets using Gson

In this Kotlin-Android tutorial, I will show you how to read and parse JSON file from assets using Gson.

Where to put assets folder and JSON file

You will need to create the assets folder inside src/main, next to your java and res folder. Then make sure that your JSON file is within your assets folder.

For example, bezkoder.json file contains list of people data like this.

Create Data Class

Let’ create Person class with 3 fields: name, age, messages.

Create function for reading JSON file from assets

We’re gonna create a Utils class and add the function that will read JSON file from assets.

Читайте также:  Повер аимп для андроид ломаный

The function has 2 parameters: context & fileName .
– We get AssetManager object from context by context.assets , then use AssetManager.open() method to open a file in assets folder using ACCESS_STREAMING mode, it returns an InputStream .
– Then bufferedReader() creates a buffered reader on the InputStream and readText() helps us to read this reader as a String.

Parse JSON using Gson

Gson.fromJson() method

com.google.gson.Gson package provides fromJson() for deserializing JSON.

  • T : type of the desired object
  • json : could be a JsonElement object, a Reader object or a String
  • classOfT : class of T
  • typeOfT : specific genericized type

Add Gson to Android project

Gson is a Java/Kotlin library for converting JSON string to an equivalent Java/Kotlin object.
Open build.gradle file and add Gson library.

Parse JSON string to Kotlin object

In your activity, import Gson library and call getJsonDataFromAsset() .

Check Android Logcat, you can see:

In the code above, we use Gson.fromJson() method to parse JSON string to List

For more details about ways to parse JSON to Data Class object, to Array or Map , please visit:
Kotlin – Convert object to/from JSON string using Gson

Conclusion

Let me summarize what we’ve done in this tutorial:

  • put assets folder & JSON file in the right place
  • create data class corresponding to JSON content
  • use AssetManager to open the File, then get JSON string
  • use Gson to parse JSON string to Kotlin object

Источник

Учебник по JSON для Android: создание и анализ данных JSON

В этом руководстве описывается, как использовать JSON с Android . JSON расшифровывается как (Java Script Object Notation). Это простой и легкий формат обмена данными, который может быть легко прочитан людьми и машинами. JSON — это текстовый формат, не зависящий от языка. Он представляет данные в текстовом формате, чтобы их можно было легко проанализировать.

Введение в JSON

JSON использует две разные структуры:

  • Коллекция пары имя / значение
  • массив

Первую структуру можно использовать для моделирования объекта, поскольку объект представляет собой набор атрибутов, которые содержат некоторые значения. Массив может использоваться для моделирования списка, массива объектов и так далее. Таким образом, используя эти две структуры, мы можем передавать данные между двумя машинами простым и эффективным способом. В последнее время JSON пользуется большим успехом, и большинство доступных API поддерживает формат JSON. Давайте посмотрим, как мы можем представлять данные в формате JSON.

Читайте также:  Электронный калькулятор для андроида

Объект в JSON моделируется с помощью , а его атрибуты можно моделировать с помощью name: value pair.Value, в свою очередь, может быть объектом, массивом или «простым» значением, например, примитивным значением (int, Строка, логическое значение и т. Д.).

Так что если у нас есть, например, класс Java, как:

Источник

Android Studio: получение JSON в RecyclerView и CardView. Урок № 1

Всем привет, в этой статье я расскажу вам, как в 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) .

Читайте также:  Officesuite для андроид с ключом

и передадим управление 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 мы будем пробегать по-нашему массиву ну и соответственно

Источник

Оцените статью