[БЕЗ_ЗВУКА] Привет.
В этом видео мы поговорим о формате JSON и библиотеке GSON.
Итак, что такое JSON?
JSON — это текстовый формат данных, легко читаемый человеком и
используемый для сериализации объектов и обмена данными.
Сериализация, напомню, это сохранение состояния объекта для передачи и
последующей десериализации — восстановления.
В любом правильно сформированном json-файле можно выделить два основных
вида структур: это поля типа ключ-значение и упорядоченный набор значений.
Ключ всегда является строковым типом, а значения могут принимать вид строки,
числа, литералов true, false, null, массивов либо объектов, вложенных в json.
Объекты обрамляются фигурными скобками,
внутри которых хранятся неупорядоченное множество пар ключ-значение.
Ключ от значения отделяется двоеточием.
Между парами ставится запятая.
Массивы в json заключаются в квадратные скобки,
между значениями также ставится запятая.
Рассмотрим пример.
Здесь мы видим простое отображение объекта,
в котором угадывается модель человека.
Поля представляют собой имя, возраст и детей.
Что характерно, дети — это массив объекта такого же типа «Человек»,
поэтому у них тоже есть имя, возраст и поле "kids", но уже со значением null.
Со структурой разобрались.
Теперь попробуем собрать из этого сериализованного файла объект.
Прежде всего нам нужен класс «модель» или, как его еще называют,
"pojo" — plain old java object, старый добрый java-объект.
Такие pojo-классы не нужно писать вручную.
Их можно сгенерировать либо с помощью плагина для Studio,
либо на специальных сайтах.
Как видно на слайде, на основе json был создан pojo-класс.
Теперь спокойно можно создать экземпляр этого класса и задать ему значение
из json.
Это — скучный, повторяющийся, рутинный процесс.
Чтобы не тратить время на это были придуманы библиотеки,
автоматизирующие конвертацию из json в объект и наоборот.
Одна из таких библиотек — GSON.
Давайте подключим ее в файле gradle уровня app и рассмотрим простую
сериализацию и десериализацию.
Для начала рассмотрим сериализацию, то есть создание json из объекта.
Соответственно, сначала нам нужно создать такой объект.
На слайде видим пример создания объекта класса Human.
Теперь нам нужно у объекта класса Gson вызвать метод toJson(),
который вернет нам json-строку.
Выведем ее в лог и получим следующее: для десериализации у Gson нужно
вызвать метод fromJson(), который на вход принимает json-строку и название класса,
объект которого нужно создать.
Попробуем воссоздать объект, который мы только что сериализовали.
И выведем его в лог.
Для этого мы переопределяем метод toString() у класса Human.
Проще всего это можно сделать с помощью встроенной кодогенерации в Studio.
Правой кнопкой кликаем по коду класса, Generate, toSting.
И теперь давайте сравним json и вывод toString.
Как видно на слайде, все данные совпадают, что, на самом деле, не может не радовать.
Итак, в этом видео мы узнали,
как сериализовать и десериализовать объекты в json с помощью библиотеки Gson.
Это — основа для клиент-серверного взаимодействия.
Это пригодится нам в будущем.
Помимо этого сериализованные в виде строки объекты можно хранить в
файле preferences либо просто на устройстве.
На этом у меня всё.
До скорой встречи.