Skip to main content
CheckTown
Convertitori

Come convertire JSON in data class Kotlin

Pubblicato 5 min di lettura
In questo articolo

Perché data class Kotlin da JSON

Le data class Kotlin forniscono un modo conciso per modellare i dati JSON con supporto integrato per equals, hashCode, copy e destrutturazione. Per gli sviluppatori Android e i progetti backend Kotlin, scrivere manualmente data class per ogni risposta API è dispendioso in termini di tempo e soggetto a errori. Il nostro convertitore JSON in Kotlin genera data class idiomatiche con corretta null safety, annotazioni di serializzazione e convenzioni di denominazione in pochi secondi.

Il sistema di null safety di Kotlin è una delle sue caratteristiche più forti, ma richiede dichiarazioni esplicite di tipi nullable. Durante la conversione di JSON — dove qualsiasi campo può essere potenzialmente null — il convertitore analizza intelligentemente i dati per determinare quali campi devono essere nullable (contrassegnati con ?) e quali possono essere tranquillamente non-null, producendo codice più sicuro fin dall'inizio.

Funzionalità del convertitore

Il convertitore produce data class Kotlin personalizzate per la tua libreria di serializzazione e i requisiti del progetto.

  • Tipi nullable — i campi con valori null nel campione JSON generano tipi nullable (String?), mentre i valori presenti generano tipi non-null (String), riflettendo accuratamente il contratto dei dati
  • @SerializedName — genera annotazioni Gson @SerializedName quando le chiavi JSON usano snake_case o altri formati non-camelCase, mappandole a nomi di proprietà Kotlin idiomatici
  • Valori predefiniti — i campi opzionali possono includere valori predefiniti (stringhe vuote, liste vuote, null) nel costruttore, rendendo la data class flessibile per risposte JSON parziali

Prova gratuitamente — nessuna registrazione richiesta

Converti JSON in Kotlin →

Pattern specifici per Android

Le data class Kotlin generate da JSON sono particolarmente utili nei flussi di sviluppo Android.

  • Parcelize — le data class generate possono essere annotate con @Parcelize e implementare Parcelable per il passaggio tra activity e fragment Android senza scrivere codice di parcellizzazione
  • Integrazione Room — l'output può servire come classi entity Room aggiungendo annotazioni @Entity e @PrimaryKey, collegando le risposte API direttamente allo storage del database locale
  • Compatibilità Retrofit — le classi generate funzionano immediatamente con Retrofit e i converter Gson/Moshi, permettendoti di definire interfacce API e iniziare le chiamate di rete in pochi minuti

Domande frequenti

Come gestisce il convertitore la null safety?

Il convertitore esamina ogni campo nel campione JSON. I campi con valori null sono tipizzati come nullable (es: String?). I campi con valori effettivi sono tipizzati come non-null (es: String). Per la null safety più accurata, fornisci un campione JSON che rappresenti l'intera gamma dei tuoi dati — inclusi i campi che possono essere null in produzione.

Meglio usare val o var per le proprietà della data class?

Il convertitore genera proprietà val (sola lettura) per impostazione predefinita, seguendo la preferenza di Kotlin per l'immutabilità. Le data class con proprietà val sono thread-safe e più facili da ragionare. Se hai bisogno di proprietà mutabili per casi specifici come entity Room con ID auto-generati, puoi cambiare singole proprietà in var dopo la generazione.

Posso generare sealed class per JSON polimorfico?

Il convertitore genera data class standard dalla struttura JSON. Per JSON polimorfico (dove un campo determina il tipo di oggetto), dovrai creare manualmente una gerarchia di sealed class dopo la generazione. Usa il convertitore per generare ogni variante come data class separata, poi avvolgile in una sealed class con un campo discriminatore.

Strumenti correlati