DokumenteBilderMedienPDF-Werkzeuge

JSON in Kotlin Data Class

Kotlin-Data-Classes aus JSON generieren, kostenlos, in deinem Browser.

Processed in your browser

Von JSON zur Kotlin-Data-Class in Sekunden

Bereit für Android und Kotlin

Generiert Code, der mit Retrofit, kotlinx.serialization und Room kompatibel ist. Direkt in dein Projekt einfügen.

100% privat

Dein API-JSON verlässt deinen Browser nie. Keine Anmeldung, keine Telemetrie.

Korrekte Typen

Leitet String, Int, Long, Double, Boolean, List und Nullable-Typen mit ? ab. Vollständige Verschachtelung unterstützt.

Sofortig

Echtzeit-Generierung während du tippst. Keine Buttons, kein Warten.

Drei Schritte, kein Aufwand

1

Dein JSON einfügen

Füge das JSON deiner API oder Konfigurationsdatei ein. Kann ein verschachteltes Objekt oder ein Array sein.

2

Sofortige Generierung

Das Tool generiert Kotlin-Data-Classes automatisch mit abgeleiteten Typen und Serialisierungs-Annotationen.

3

Den Code kopieren

Kopiere die generierten Data-Classes und verwende sie direkt in deinem Android- oder Kotlin-Projekt.

Noch Fragen?

Data-Classes sind ein spezielles Kotlin-Feature, das automatisch die Methoden equals(), hashCode(), toString() und copy() auf Basis der in dem Primärkonstruktor deklarierten Properties generiert. Sie sind ideal zur Darstellung von Datenmodellen, insbesondere REST-API-Antworten, da sie den Boilerplate eliminieren, den Java manuell oder mit Lombok erfordern würde.

Standardmäßig werden val-Properties (unveränderlich) generiert, was die empfohlene Praxis in Kotlin für Datenmodelle ist. val bedeutet, dass der Wert nach der Initialisierung nicht neu zugewiesen werden kann, was Objekte vorhersehbarer und thread-sicher macht. Verwende var nur, wenn du das Objekt nach der Erstellung verändern musst.

Ja. Die Annotation @Serializable aus kotlinx.serialization, Kotlins offizieller JSON-Serialisierungs-Bibliothek, wird hinzugefügt. @SerialName wird ebenfalls hinzugefügt, wenn der JSON-Feldname von Kotlins camelCase-Konvention abweicht, zum Beispiel wenn das JSON snake_case verwendet.

Wenn ein Wert im JSON null ist oder ein Feld nicht in allen Objekten eines Arrays vorhanden ist, wird die Property als Nullable-Typ mit dem ?-Operator generiert, zum Beispiel String? statt String. In Kotlin ist die Unterscheidung zwischen Nullable- und Non-Nullable-Typen Teil des Typsystems, und der Compiler überprüft sie zur Kompilierzeit.

In der Android-Entwicklung werden Kotlin-Data-Classes hauptsächlich verwendet, um REST-API-Antworten mit Retrofit zu modellieren, Daten in lokalen Datenbanken mit Room zu speichern, Objekte als Parcelable zwischen Activities und Fragments zu serialisieren, und als Modelle in MVVM- oder MVI-Architekturen. Seit Google 2019 Kotlin als offizielle Sprache für Android übernommen hat, sind Data-Classes der De-facto-Standard.

Kotlin auf Android, kotlinx.serialization und Retrofit für typsichere APIs

Im Mai 2019 kündigte Google an, dass Kotlin zur bevorzugten Sprache für die Android-Entwicklung wird und Java als erste Wahl ablöst. Seitdem ist die Kotlin-Nutzung auf Android gewachsen, bis heute mehr als 95% der Top-1000-Apps im Google Play Store Kotlin verwenden. Data-Classes sind eines der am meisten geschätzten Features von Android-Entwicklern, gerade weil sie den Boilerplate von Java-POJOs eliminieren.

kotlinx.serialization ist JetBrains offizielle Serialisierungs-Bibliothek für Kotlin. Im Gegensatz zu Gson oder Moshi ist sie vollständig nativ für Kotlin, funktioniert mit Kotlin Multiplatform Mobile, unterstützt Coroutinen nativ und generiert Code zur Kompilierzeit statt Reflexion zur Laufzeit zu verwenden. Die Annotation @Serializable an einer Data-Class reicht aus, um JSON zu serialisieren und zu deserialisieren.

Retrofit, von Square entwickelt, ist die beliebteste Bibliothek zum Konsumieren von REST-APIs auf Android. In Kombination mit kotlinx.serialization oder Gson als Konverter ermöglicht es die Definition von API-Interfaces mit Annotationen (@GET, @POST, @Body), und Retrofit generiert automatisch die Implementierung. Die von diesem Tool generierten Data-Classes sind direkt mit Retrofit als Rückgabetypen oder Request-Body-Parameter-Typen kompatibel.