Немного о Kotlin Serialization 1.0

Всем привет! Я тут совсем недавно для работы с JSON начал использовать именно эту библиотеку. Сначала вместе с GSON, который использовал довольно долго, а теперь и отдельно. И вместе с Kotlin она показала себя очень хорошо.

Когда я о ней только узнал я даже переводил небольшой гайд по сериализации, но он уже не факт что актуален. Тогда была немного другая версия, ведь релиз официальный был только пару дней назад.

Думаю уже понятно, что предпочтение я отдал именно библиотеке котлина. Но изначально к поиску замены меня подтолкнул тот факт, что гугловская библиотека непростительно устарела, особенно если учитывать принесенные котлином нововведения. Да и просто новые решения куда проще и удобнее, как я уже узнал уже сейчас.

И в этой статье я просто хочу рассказать немного о том, почему мне так понравилась новая библиотека. И почему я буду использовать именно её. Примеры возьму из материала в честь релиза библиотеки.

Простота в применении

Процесс сериализации и десерализации до предела прост. Нам нужен, к примеру, data class, у которого есть аннотация @Serializable. На этом все!

Ожидаемое поведение

Как заявили его создатели: он сделан с учетом типов в Kotlin. А значит для котлина он — самое то. В т.ч. для мультиплатформенного тоже.

Полиморфная сериализация

Эта библиотека полностью дружит с полиморфизмом. И этот пример просто идеально это отображает, и это реально круто!

Высокий уровень кастомизации

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

Перспективы и интеграция

На своём сайте они указали несколько довольно популярный фреймворков с которыми уже совместима их библиотека. И, что не менее интересно, обещают завезти скоро и других сериализаций, а именно: HOCON, ProtoBuf, CBOR, и Properties.

Иными словами, для разработчиков на котлине библиотека реально будет очень полезна. Рекомендую хотя бы попробовать. А на этом всё, спасибо и удачи в разработке.

Добавить комментарий