Serialiserbara klasser
Annotera modeller
Serialiserbara klasser är en gratis lektion i Kotlin Academy på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Kotlin Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Annoteringen @Serializable
För att göra en klass serialiserbar annoterar ni den med @Serializable. Kompilatorpluginet genererar sedan en serializer för den.
import kotlinx.serialization.Serializable
@Serializable
data class User(val id: Int, val name: String)Fungerar med dataklasser
Ni kan annotera vilken klass som helst, men dataklasser är det vanligaste valet för modeller eftersom de automatiskt genererar equals, hashCode och toString.
Alla egenskaper i konstruktorn blir serialiserade fält.
Standardvärden
Egenskaper med standardvärden blir valfria vid avkodning. Om JSON utelämnar dem används standardvärdet.
@Serializable
data class Config(
val host: String,
val port: Int = 8080,
val secure: Boolean = false
)Nullbara egenskaper
Nullbara typer motsvarar JSON-värdet null. En nullbar egenskap utan standardvärde krävs fortfarande i JSON (men värdet kan vara null).
@Serializable
data class Profile(
val name: String,
val bio: String? = null
)Byta namn på fält med @SerialName
JSON-fältnamn skiljer sig ofta från Kotlins namnkonventioner. Använd @SerialName för att mappa dem.
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class Account(
@SerialName("user_id") val userId: Int,
@SerialName("full_name") val fullName: String
)Ignorera egenskaper med @Transient
Markera en egenskap med @Transient för att utesluta den från serialisering. Transienta egenskaper måste ha ett standardvärde.
import kotlinx.serialization.Transient
import kotlinx.serialization.Serializable
@Serializable
data class Session(
val token: String,
@Transient val cachedAt: Long = 0L
)Kapslade serialiserbara klasser
Serialiserbara klasser kan innehålla andra serialiserbara klasser. Pluginet hanterar hela grafen automatiskt.
@Serializable
data class Address(val city: String, val zip: String)
@Serializable
data class Company(val name: String, val address: Address)Samlingar i modeller
Standardsamlingar som List, Set och Map är serialiserbara direkt när deras element är serialiserbara.
@Serializable
data class Team(
val name: String,
val members: List<String>,
val scores: Map<String, Int>
)Enumklasser stöds
Enumklasser kan annoteras med @Serializable och serialiseras som sitt namn som standard. Använd @SerialName på enumvärden för att anpassa namnen.
@Serializable
enum class Role {
@SerialName("admin") ADMIN,
@SerialName("user") USER
}Sammanfattning: obligatoriska och valfria fält
En egenskap är obligatorisk i JSON om den inte har ett standardvärde. Viktiga regler:
- Inget standardvärde → obligatorisk
- Har standardvärde → valfri
@Transient→ ignoreras och måste ha standardvärde- Nullbar utan standardvärde → obligatorisk, men får vara null
Vad som inte kan serialiseras direkt
Typer utan en inbyggd serializer (t.ex. java.util.Date, java.time.Instant och UUID) behöver en egen serializer, vilket ni lär er senare.
Om ni försöker serialisera dem utan en sådan uppstår ett kompileringsfel.
Snabbkontroll
Vilket påstående om @Transient är korrekt?
Sammanfattning
Ni har lärt er att annotera modeller:
@Serializablepå klassen- Standardvärden gör fält valfria
@SerialNamebyter namn på JSON-nycklar@Transientutesluter ett fält (kräver ett standardvärde)
Nästa steg: att faktiskt koda och avkoda JSON.
Lär dig Kotlin med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 51
- Lektioner
- 203
Vanliga frågor
Är lektionen ”Serialiserbara klasser” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Kotlin Academy, inklusive ”Serialiserbara klasser”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Serialiserbara klasser”?
Annotera modeller Ni övar på Kotlin Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Kotlin Academy?
Du behöver inga förkunskaper. Utbildningen i Kotlin Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Serialiserbara klasser”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Kotlin Academy-lektionen?
Ja. Varje Kotlin Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Konfigurera kotlinx.serialization
- Serialiserbara klasser
- JSON-kodning och avkodning
- Anpassade serialiserare