Ускоренный курс сериализации JSON в Kotlin

Итак, вы хотите быстро конвертировать Data классы в JSON и обратно. Это должно быть довольно легко, ведь JSON существует уже много лет.

В Android (как и Java в целом) эта задача традиционна передана на специальные библиотеки. В прошлом эту роль занимал Gson. Но позже, особенно с null системой Kotlin, библиотека потеряла актуальность.

Существую и другие современные библиотеки (к примеру Moshi). А начиная с версии 1.3 Kotlin предлагает и собственный способ сериализации в JSON и обратно (доступны также другие форматы, вроде protobuf, но о них в другом посте).

Установка

Вариант Kotlin — это плагин с runtime зависимостью.

Посмотрите официальную документацию для получения последних версий.

Использование

Подготовьте ваш data класс

Вам нужно добавить аннотации @Serializabe в ваш data класс. Отметьте, что можно аннотировать и обычный класс, но тогда можно столкнуться с ограничениями.

Из важного. Если мы сериализуем класс, который ссылается на другие data классы, то и эти «дети» тоже должны быть сериализованы аннотацией @Serializabe.

Сериализация / Десериализация

Конвертация в JSON и обратно довольно проста.

Статический объкт Json, к которому мы обращаемся, предоставляет базовую конфигурацию для сериализации. В соответствии с документацией, эта конфигурация разумна (?), но это не гарантирует, что она никогда не будет изменена. И, чтобы избежать неприятных сюрпризов, вы можете делать обращение со стабильной конфигурацией. Это будет гарантировать, что, то, что работает сегодня, будет работать и завтра.

Игнорирование и необязательные поля

Часто нам нужны какие-либо необязательные поля. Или поля, которые мы просто не хотим использовать во время сериализации/десериализации. Или для дополнительных параметров со значением по умолчанию, которое будет изменено в зависимости от JSON данных.

Чтобы игнорировать success, нужно просто добавить аннотацию @Transient.

Этот пост лишь затрагивает поверхность темы. Вы можете кастомизировать процесс сериализации как вам угодно. А как конвертировать ваш JSON в data классы посмотрите тут. На этом всё, наслаждайтесь вашей JSON конвертацией.

1 комментарий к “Ускоренный курс сериализации JSON в Kotlin”

  1. Пингбэк: Немного о Kotlin Serialization 1.0 и почему он крут – GeekStand

Оставьте комментарий

Пролистать наверх