JavaRush
AI Academy
new
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • Колекції та Map у JSON

    Kotlin SELF
    48 рівень, 0 лекція
    Розбираємо, як Kotlin-колекції серіалізуються в JSON через kotlinx.serialization: чому List і Set перетворюються на масиви [...], як Map<String, V> стає JSON-обʼєктом {...}, що відбувається з нерядковими ключами ( Map<Int, ...> → ключі стають рядками), і коли краще обрати формат List<Entry> замість мапи. Наприкінці — критерії вибору та типові помилки інтеграції.
    Відкрита
  • Анотації @SerialName і @Transient

    Kotlin SELF
    48 рівень, 1 лекція
    Розбираємо дві ключові анотації з kotlinx.serialization, які допомагають тримати JSON-формат стабільним: @SerialName — для привʼязування Kotlin-імені властивості до потрібного імені поля в JSON (сумісність зі старими файлами та зовнішніми API), а @Transient — щоб вилучати поля із серіалізації (кеш, налагодження, тимчасові значення) з обовʼязковим безпечним значенням за замовчуванням. А також — типові помилки під час рефакторингу й читання «старих» JSON.
    Відкрита
  • Серіалізація enum і sealed class: дискримінатор і Ok/Error

    Kotlin SELF
    48 рівень, 2 лекція
    Розбираємося, як enum і sealed class перетворюються на JSON через kotlinx.serialization: чому для enum важливо фіксувати зовнішні значення за допомогою @SerialName, навіщо поліморфній серіалізації потрібен дискримінатор ( classDiscriminator), як закріпити варіанти Ok/ Error як "ok"/ "error" і чому JSON може відрізнятися залежно від того, серіалізуєте ви через базовий чи через конкретний тип.
    Відкрита
  • Власний серіалізатор

    Kotlin SELF
    48 рівень, 3 лекція
    Розбираємося, навіщо потрібен власний серіалізатор у kotlinx.serialization: як відокремити внутрішнє подання (наприклад, Money як Long у центах) від зовнішнього JSON-контракту (рядок "12.34"), як під’єднати серіалізатор через @Serializable( with = ...), із чого складається KSerializer<T> ( descriptor, serialize, deserialize), чому гроші краще не розбирати через Double і як писати fail-fast розбір із SerializationException.
    Відкрита
  • Циклічні посилання

    Kotlin SELF
    48 рівень, 4 лекція
    Розбираємося, чому циклічні посилання в об’єктній моделі Kotlin перетворюють серіалізацію в JSON на проблему «граф проти дерева» й зазвичай закінчуються помилками на кшталт StackOverflowError. Вчимося проєктувати «модель зберігання» без циклів (стратегія id замість посилання), робити знімок стану через BudgetDump, а потім відновлювати зручні зв’язки в пам’яті функцією buildState(). Наприкінці обговоримо нюанси: стабільні ідентифікатори, односпрямовані моделі та роль @Transient.
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush