JSON in Kotlin Data Class
Genera data class Kotlin da JSON, gratis, nel tuo browser.
A cosa serve
Da JSON a Kotlin Data Class in pochi secondi
Pronto per Android e Kotlin
Genera codice compatibile con Retrofit, kotlinx.serialization e Room. Incolla direttamente nel tuo progetto.
100% privato
Il tuo JSON dell'API non lascia mai il tuo browser. Nessuna registrazione, nessuna telemetria.
Tipi corretti
Inferisce String, Int, Long, Double, Boolean, List e tipi nullable con il punto interrogativo. Annidamento completo supportato.
Istantaneo
Generazione in tempo reale mentre scrivi. Nessun pulsante, nessuna attesa.
Come funziona
Tre passaggi, senza complicazioni
Incolla il tuo JSON
Incolla il JSON della tua API o file di configurazione. Puo essere un oggetto annidato o un array.
Generazione istantanea
Lo strumento genera automaticamente data class Kotlin con tipi inferiti e annotazioni di serializzazione.
Copia il codice
Copia le data class generate e usale direttamente nel tuo progetto Android o Kotlin.
FAQ
Hai delle domande?
Le data class sono una caratteristica speciale di Kotlin che genera automaticamente i metodi equals, hashCode, toString e copy in base alle proprieta dichiarate nel costruttore primario. Sono ideali per rappresentare modelli di dati, specialmente le risposte di API REST, perche eliminano il codice ripetitivo che Java richiederebbe di scrivere manualmente o tramite Lombok.
Per default vengono generate proprieta val immutabili, che e la pratica raccomandata in Kotlin per i modelli di dati. Il valore val significa che non puo essere riassegnato dopo l'inizializzazione, rendendo gli oggetti piu prevedibili e thread-safe. Usa var solo se hai bisogno di modificare l'oggetto dopo la creazione.
Si. Viene aggiunta l'annotazione @Serializable di kotlinx.serialization, la libreria ufficiale di serializzazione JSON di Kotlin. Viene aggiunto anche @SerialName quando il nome del campo JSON differisce dalla convenzione camelCase di Kotlin, ad esempio quando il JSON usa snake_case.
Quando un valore nel JSON e null, o quando un campo non e presente in tutti gli oggetti di un array, la proprieta viene generata come tipo nullable usando l'operatore punto interrogativo. Ad esempio, String? invece di String. In Kotlin, la distinzione tra tipi nullable e non-nullable fa parte del sistema di tipi e il compilatore la verifica a tempo di compilazione.
Nello sviluppo Android, le data class Kotlin vengono usate principalmente per modellare le risposte di API REST con Retrofit, memorizzare dati in database locali con Room, serializzare oggetti da passare tra Activity e Fragment come Parcelable, e come modelli nelle architetture MVVM o MVI. Da quando Google ha adottato Kotlin come linguaggio ufficiale per Android nel 2019, le data class sono diventate lo standard di fatto.
Kotlin su Android, kotlinx.serialization e Retrofit per API type-safe
Nel maggio 2019, Google ha annunciato che Kotlin diventava il linguaggio preferito per lo sviluppo Android, scalzando Java come prima scelta. Da allora, l'adozione di Kotlin in Android e cresciuta al punto che oggi piu del 95% delle 1000 app piu popolari su Google Play usa Kotlin. Le data class sono una delle funzionalita piu apprezzate dagli sviluppatori Android proprio perche eliminano il codice ripetitivo dei POJO Java.
kotlinx.serialization e la libreria ufficiale di serializzazione di JetBrains per Kotlin. A differenza di Gson o Moshi, e completamente nativa di Kotlin, funziona con la compilazione Kotlin Multiplatform Mobile, supporta nativamente le coroutine e genera codice a tempo di compilazione invece di usare la riflessione a runtime. L'annotazione @Serializable su una data class e sufficiente per serializzare e deserializzare JSON.
Retrofit, sviluppato da Square, e la libreria piu popolare per consumare API REST su Android. Combinata con kotlinx.serialization o Gson come convertitore, permette di definire interfacce API con annotazioni e Retrofit genera automaticamente l'implementazione. Le data class generate da questo strumento sono direttamente compatibili con Retrofit come tipi di ritorno o tipi di parametro del body della richiesta.