0Pricing
Kotlin Academy · Lekcja

Konfiguracja kotlinx.serialization

Dodaj wtyczkę

Konfiguracja kotlinx.serialization to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Czym jest kotlinx.serialization?

kotlinx.serialization to oficjalna biblioteka Kotlin służąca do konwertowania obiektów do formatów takich jak JSON i z powrotem.

  • Czysty Kotlin, gotowy do użycia w projektach wieloplatformowych
  • Generowanie kodu w czasie kompilacji (bez refleksji)
  • Utrzymywana przez JetBrains

Biblioteka korzysta z wtyczki kompilatora oraz biblioteki runtime.

Dlaczego potrzebna jest wtyczka kompilatora?

W przeciwieństwie do bibliotek opartych na refleksji kotlinx.serialization generuje serializatory w czasie kompilacji.

  • Większa szybkość, bez narzutu refleksji w czasie działania
  • Działa na Kotlin/Native i JS, gdzie refleksja jest ograniczona
  • Bezpieczne typowo i weryfikowane przez kompilator

Dlatego należy zastosować wtyczkę kotlin-serialization, a nie tylko dodać zależność.

Zastosowanie wtyczki (Kotlin DSL)

W pliku build.gradle.kts należy zastosować wtyczkę serializacji w tej samej wersji co wtyczkę Kotlin.

plugins {
    kotlin("jvm") version "2.0.0"
    kotlin("plugin.serialization") version "2.0.0"
}

Dodawanie zależności runtime

Wtyczka generuje kod, ale potrzebna jest również biblioteka runtime JSON.

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
}

Znaczenie zgodności wersji

Wersja plugin.serialization musi odpowiadać wersji kompilatora Kotlin. Biblioteka runtime ma własną, niezależną wersję.

  • Wersja wtyczki = wersja Kotlin (np. 2.0.0)
  • Wersja runtime jest niezależna (np. 1.7.1)

Niezgodne wersje wtyczki i Kotlin powodują niejasne błędy procesu budowania.

Inne formaty

JSON jest najczęściej używany, ale kotlinx.serialization obsługuje więcej formatów za pośrednictwem dodatkowych artefaktów:

  • kotlinx-serialization-json — JSON
  • kotlinx-serialization-cbor — binarny CBOR
  • kotlinx-serialization-protobuf — Protocol Buffers

Należy dodać tylko artefakty formatów, które są potrzebne.

Odpowiednik w Groovy DSL

Jeśli projekt korzysta z Groovy i pliku build.gradle zamiast Kotlin DSL, konfiguracja wygląda następująco.

// build.gradle (Groovy)
plugins {
    id 'org.jetbrains.kotlin.jvm' version '2.0.0'
    id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.0'
}

dependencies {
    implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1'
}

Punkt wejścia Json

Po skonfigurowaniu biblioteki obiekt Json z pakietu kotlinx.serialization.json służy jako główny punkt wejścia do kodowania i dekodowania.

import kotlinx.serialization.json.Json

val format = Json
// format.encodeToString(...) / format.decodeFromString(...)

Minimalny działający fragment kodu

Oto najmniejszy kompletny przykład po skonfigurowaniu wtyczki i biblioteki runtime.

import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json

@Serializable
data class City(val name: String, val population: Int)

fun main() {
    val city = City("Istanbul", 15000000)
    val json = Json.encodeToString(city)
    println(json)
}

Konfiguracja wieloplatformowa

W projekcie Kotlin Multiplatform należy dodać bibliotekę runtime do commonMain, aby wszystkie platformy mogły z niej korzystać.

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
        }
    }
}

Typowe błędy konfiguracji

Należy uważać na następujące częste problemy:

  • Brak wtyczki — pojawia się komunikat Serializer has not been found
  • Wersja wtyczki nie odpowiada wersji Kotlin
  • Dodano bibliotekę runtime, ale nie wtyczkę (lub odwrotnie)
  • Brak importu encodeToString

Szybkie sprawdzenie

Dlaczego kotlinx.serialization wymaga wtyczki kompilatora Gradle?

Podsumowanie

Konfiguracja kotlinx.serialization obejmowała:

  • Zastosowanie wtyczki kotlin("plugin.serialization") zgodnej z wersją Kotlin
  • Dodanie zależności runtime kotlinx-serialization-json
  • Użycie obiektu Json jako punktu wejścia

W następnym kroku klasy modeli zostaną opatrzone adnotacją @Serializable.

Często zadawane pytania

Czy lekcja „Konfiguracja kotlinx.serialization” jest bezpłatna?

Tak — pełny tekst „Konfiguracja kotlinx.serialization” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Konfiguracja kotlinx.serialization”?

Dodaj wtyczkę Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Konfiguracja kotlinx.serialization”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?

Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Konfiguracja kotlinx.serialization
  2. Klasy serializowalne
  3. Kodowanie i dekodowanie JSON
  4. Niestandardowe serializery
← Powrót do Kotlin Academy