Machen Sie aus einem JSON-Beispiel Kotlin-Data-Classes für kotlinx.serialization, Gson oder Moshi
Läuft in Ihrem Browser. Nichts, was Sie eingeben, wird irgendwohin gesendet. Geprüft am 16. Oktober 2026.Fügen Sie ein JSON-Beispiel ein und erhalten Sie Kotlin-Data-Classes für kotlinx.serialization, Gson oder Moshi. Ganze Zahlen werden zu Int, über 2.147.483.647 zu Long, jede Dezimalzahl macht eine Eigenschaft zu Double, ein null-Wert macht sie nullable, und ein Schlüssel, der in manchen Objekten fehlt, wird zu T? = null, damit alle 3 Bibliotheken ihn dekodieren.
Diese Seite wurde maschinell aus dem englischen Original übersetzt. Die Übersetzung wurde noch von keinem Menschen geprüft; maßgeblich ist die englische Fassung. Englisches Original lesen
Fügen Sie ein JSON-Beispiel, etwa eine API-Antwort, in das linke Feld ein.
Die Kotlin-Data-Classes erscheinen während der Eingabe, eine pro Objekt, mit Eigenschaften in camelCase und einer Annotation, wo immer ein Schlüssel abweicht.
Wählen Sie kotlinx.serialization, Gson oder Moshi, var statt val, falls nötig, und den Namen der Wurzelklasse.
Klicken Sie auf Kopieren oder auf Herunterladen, um Models.kt zu speichern.
Kotlin liest JSON in Data Classes ein, und jedes Objekt braucht eine Klasse, deren Eigenschaften die richtigen Typen, die richtige Nullbarkeit und einen Weg zurück zu ihren Schlüsseln haben. Dieser Konverter schreibt diese Klassen aus einem Beispiel, sodass eine lange API-Antwort mit einem Einfügen zu Kotlin wird.
Wie die Typen gewählt werden.
| JSON-Wert | Kotlin-Typ |
|---|---|
| "text" | String |
| true / false | Boolean |
| 42 (nur ganze Zahlen) | Int, oder Long über 32 Bit hinaus |
| 4.5 (irgendeine Dezimalzahl gesehen) | Double |
| null und zusätzlich ein Typ | String?, Int? |
| nur null oder gemischte Arten | JsonElement? oder Any? |
| [ ... ] | List<...> |
| { } leer | JsonObject oder Map<String, Any?> |
| { ... } | eine eigene Data Class |
Fehlende Schlüssel. Alle Objekte eines Arrays werden zu einer Klasse zusammengeführt. Ein Schlüssel, den manche weglassen, wird nullable mit null als Standardwert, weil kotlinx.serialization und Moshi einen fehlenden Schlüssel ohne Standardwert als Fehler behandeln. kotlinx.serialization lehnt außerdem Schlüssel ab, für die es keine Eigenschaft hat, daher erhält jeder Schlüssel des Beispiels eine.
Namen. Eigenschaften stehen in lowerCamelCase. Wo das den Schlüssel ändert, etwa user_name zu userName, trägt die Eigenschaft je nach Bibliothek @SerialName, @SerializedName oder @Json(name = ...). Schlüsselwörter wie class werden in Backticks geschrieben. Zeichenketten in Annotationen maskieren das Dollarzeichen, da Kotlin es sonst als Template lesen würde.
Optionen. var statt val ergibt veränderliche Eigenschaften. Ein leeres Objekt wird zu einer gewöhnlichen Klasse, weil eine Data Class mindestens eine Eigenschaft braucht. Die Wurzelklasse heißt Root, sofern Sie keinen Namen vergeben.
Jede Ausgabe wurde geprüft, indem das Kotlin zurückgelesen und 9 Beispiele mit den Standardregeln von kotlinx.serialization dekodiert wurden. Nichts, was Sie einfügen, verlässt den Browser.
Fügen Sie ein JSON-Beispiel in den Konverter ein, und die Data Classes erscheinen daneben, eine pro Objekt. Mit kotlinx.serialization fügen Sie das Plugin hinzu und dekodieren mit Json.decodeFromString<Root>(text); mit Gson nutzen Sie Gson().fromJson(text, Root::class.java); mit Moshi bauen Sie einen Adapter für Root.
Ein Schlüssel, den manche Objekte eines Arrays weglassen, erhält einen nullable Typ und null als Standardwert. kotlinx.serialization und Moshi lehnen beide einen fehlenden Schlüssel ab, wenn die Eigenschaft keinen Standardwert hat, daher lässt erst der Standardwert jedes Objekt des Beispiels dekodieren.
kotlinx.serialization ist Kotlins eigene, läuft auf jeder Kotlin-Plattform und prüft Typen beim Kompilieren. Moshi mit Codegen passt zu Android-Projekten, die schon Retrofit und Okio nutzen. Gson ist die älteste und braucht keine Einrichtung, ignoriert beim Erzeugen von Objekten aber Kotlins Null-Sicherheit und Standardwerte.
Eigenschaften stehen in lowerCamelCase, sodass aus user_name userName wird, wobei @SerialName, @SerializedName oder @Json(name = ...) den ursprünglichen Schlüssel bewahrt. Ein Schlüssel, der ein Kotlin-Schlüsselwort ist, etwa class oder object, wird in Backticks geschrieben, was den Schlüssel als echten Namen der Eigenschaft behält.
Ganze Zahlen werden zu Int, oder zu Long, wenn ein Wert über 2.147.483.647 liegt, und ein Feld wird zu Double, sobald irgendein Beispielwert Nachkommastellen hat. Werte unterschiedlicher Art werden mit kotlinx.serialization zu JsonElement?, mit Gson und Moshi zu Any?.
Nein. Die Umwandlung läuft in Ihrem Browser ohne Anfrage an einen Server, und das JSON wird nicht gespeichert, sodass API-Antworten mit Tokens oder persönlichen Daten auf Ihrem Gerät bleiben. Schließen Sie den Tab, und nichts bleibt zurück.
Sätze und Regeln ändern sich; prüfen Sie die Quelle, bevor Sie sich auf eine Zahl verlassen.
Kommen Sie nicht weiter? Fragen Sie zu JSON-zu-Kotlin-Data-Class-Konverter und jeder, der es weiß, kann antworten. Kein Konto nötig.