kotlinx serialization
@kotlinx.serialization.Serializable
data class Project(val name: String)
val json = kotlinx.serialization.json.Json.encodeToString(Project("Nova"))
data class
data class Shot(val id: Int, val name: String)
val shot = Shot(1, "A")
list e map
val tags = listOf("ai", "film")
val meta = mapOf("role" to "engineer")
result e runCatching
val res = runCatching { "ok" }
println(res.getOrNull())
esercizi
serializza una data class in json.
@kotlinx.serialization.Serializable
data class Item(val id: Int)
val json = kotlinx.serialization.json.Json.encodeToString(Item(1))
println(json)
panoramica
In questo capitolo su serialization lavoriamo su kotlinx serialization, data class, list e map, result e runCatching per creare micro-pattern riutilizzabili.
lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.
badge: kotlin essentials
obiettivi
- capire e applicare kotlinx serialization in uno scenario reale
- capire e applicare data class in uno scenario reale
- capire e applicare list e map in uno scenario reale
- capire e applicare result e runcatching in uno scenario reale
scheda rapida
@kotlinx.serialization.Serializable
data class Project(val name: String)
val json = kotlinx.serialization.json.Json.encodeToString(Project("Nova"))
adatta questo scheletro agli esempi della lezione.
tips
- usa val quando possibile
- sfrutta data class
- gestisci null in modo esplicito
- coroutines con scope chiari
- moduli gradle coerenti
- mantieni kotlinx serialization leggibile
tip: documenta ogni scelta architetturale.
mini progetto
serializza e deserializza un modello.
- aggiungi @Serializable
- encode json
- decode json
output atteso: roundtrip json.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale