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— JSONkotlinx-serialization-cbor— binarny CBORkotlinx-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
Jsonjako 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
- Konfiguracja kotlinx.serialization
- Klasy serializowalne
- Kodowanie i dekodowanie JSON
- Niestandardowe serializery