lezione 07

serialization

kotlinx serialization e json.

livello: intermedio durata: 26 min output: payload json badge: kotlin essentials

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
start a brief