Kotlin Academy · Lektion

Serialiserbara klasser

Annotera modeller

Lektion 2 av 413 steg

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:

  • @Serializable på klassen
  • Standardvärden gör fält valfria
  • @SerialName byter namn på JSON-nycklar
  • @Transient utesluter ett fält (kräver ett standardvärde)

Nästa steg: att faktiskt koda och avkoda JSON.

Gratis att börja

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

  1. Konfigurera kotlinx.serialization
  2. Serialiserbara klasser
  3. JSON-kodning och avkodning
  4. Anpassade serialiserare
← Tillbaka till Kotlin Academy