Serializable-klasser
Annotér modeller
Serializable-klasser er en gratis Kotlin Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Kotlin Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Kotlin Academy-kurset indeholder 4 lektioner i alt.
Annoteringen @Serializable
For at gøre en klasse serialiserbar skal du annotere den med @Serializable. Compiler-plugin'et genererer derefter en serialiseringskomponent til den.
import kotlinx.serialization.Serializable
@Serializable
data class User(val id: Int, val name: String)Fungerer med dataklasser
Du kan annotere enhver klasse, men dataklasser er det mest almindelige valg til modeller, fordi de automatisk genererer equals, hashCode og toString.
Alle egenskaber i konstruktøren bliver serialiserede felter.
Standardværdier
Egenskaber med standardværdier bliver valgfrie under afkodning. Hvis JSON ikke indeholder dem, bruges standardværdien.
@Serializable
data class Config(
val host: String,
val port: Int = 8080,
val secure: Boolean = false
)Nullable-egenskaber
Nullable-typer svarer til JSON null. En nullable-egenskab uden en standardværdi er stadig påkrævet i JSON, men dens værdi må gerne være null.
@Serializable
data class Profile(
val name: String,
val bio: String? = null
)Omdøbning af felter med @SerialName
Navne på JSON-felter er ofte forskellige fra Kotlins navngivningskonventioner. Brug @SerialName til at knytte dem sammen.
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class Account(
@SerialName("user_id") val userId: Int,
@SerialName("full_name") val fullName: String
)Ignorering af egenskaber med @Transient
Markér en egenskab med @Transient for at udelukke den fra serialisering. Transiente egenskaber skal have en standardværdi.
import kotlinx.serialization.Transient
import kotlinx.serialization.Serializable
@Serializable
data class Session(
val token: String,
@Transient val cachedAt: Long = 0L
)Indlejrede serialiserbare klasser
Serialiserbare klasser kan indeholde andre serialiserbare klasser. Plugin'et håndterer automatisk hele objektgrafen.
@Serializable
data class Address(val city: String, val zip: String)
@Serializable
data class Company(val name: String, val address: Address)Samlinger i modeller
Standardsamlinger som List, Set og Map kan serialiseres direkte, når deres elementer kan serialiseres.
@Serializable
data class Team(
val name: String,
val members: List<String>,
val scores: Map<String, Int>
)Enum-klasser understøttes
Enum-klasser kan annoteres med @Serializable og serialiseres som standard til deres navn. Brug @SerialName på elementerne for at tilpasse dem.
@Serializable
enum class Role {
@SerialName("admin") ADMIN,
@SerialName("user") USER
}Opsummering af påkrævede og valgfrie felter
En egenskab er påkrævet i JSON, medmindre den har en standardværdi. De vigtigste regler er:
- Ingen standardværdi → påkrævet
- Har standardværdi → valgfri
@Transient→ ignoreres, skal have en standardværdi- Nullable uden standardværdi → påkrævet, men må være null
Hvad der ikke kan serialiseres direkte
Typer uden en indbygget serialiseringskomponent, f.eks. java.util.Date, java.time.Instant og UUID, kræver en brugerdefineret serialiseringskomponent, som du lærer om senere.
Hvis du forsøger at serialisere dem uden en sådan, får du en compiler-fejl.
Hurtig kontrol
Hvilken påstand om @Transient er korrekt?
Opsummering
Du har lært at annotere modeller:
@Serializablepå klassen- Standardværdier gør felter valgfrie
@SerialNameomdøber JSON-nøgler@Transientudelukker et felt, som skal have en standardværdi
Næste trin: faktisk kodning og afkodning af JSON.
Lær Kotlin med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 51
- Lektioner
- 203
Ofte stillede spørgsmål
Er lektionen “Serializable-klasser” gratis?
Ja — alle 3 lektioner i læringssporet Kotlin Academy, inklusive “Serializable-klasser”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Kotlin Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Serializable-klasser”?
Annotér modeller Du øver dig i Kotlin Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Kotlin Academy?
Der kræves ingen tidligere erfaring. Kotlin Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Serializable-klasser”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Kotlin Academy-lektion?
Ja. Alle Kotlin Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Opsætning af kotlinx.serialization
- Serializable-klasser
- JSON-kodning og -afkodning
- Brugerdefinerede serializere