Tool von Tool Kumar

Kotlin-Data-Class aus JSON generieren

Erstelle aus einem JSON-Beispiel Data Classes für kotlinx.serialization. Verschachtelte Objekte erhalten eigene Klassen, Arrays werden zu List-Werten. Umbenannte Felder behalten durch @SerialName ihre ursprünglichen JSON-Namen.

So verwendest du dieses Tool

  1. Füge eine repräsentative Antwort ein, auch mit Datensätzen, deren Felder sich unterscheiden.
  2. Prüfe die generierte Ausgabe und ändere bei Bedarf den Stammnamen.
  3. Kopiere den Code oder lade ihn herunter. Prüfe anschließend die Typen anhand deines API-Vertrags.

Praxisbeispiel

Diese Ausgabe stammt aus dem integrierten Konverter. Aus den beiden Artikelpreisen wird ein Gleitkommafeld abgeleitet. Die Werte null und ein String im Feld note ergeben ein Feld, das null sein kann.

Eingabe

{
  "user-id": 42,
  "profile": {
    "city": "London",
    "created_at": "2026-10-14T09:00:00Z"
  },
  "items": [
    {
      "price": 12,
      "note": null
    },
    {
      "price": 12.5,
      "note": "gift"
    }
  ]
}

Ausgabe

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class Root(
    @SerialName("user-id") val userId: Long,
    val profile: Profile,
    val items: List<Item>,
)

@Serializable
data class Profile(
    val city: String,
    @SerialName("created_at") val createdAt: String,
)

@Serializable
data class Item(
    val price: Double,
    val note: String? = null,
)

Eine Android-API-Antwort dekodieren

Aktiviere das Kotlin-Serialization-Compiler-Plugin und füge deiner App die JSON-Abhängigkeit von kotlinx.serialization hinzu. Verwende den generierten Typ Root mit Json.decodeFromString.

ignoreUnknownKeys lässt neue Serverfelder zu, ohne einen Fehler auszulösen. Aktiviere es nur, wenn deine API-Richtlinien unbekannte Felder erlauben.

import kotlinx.serialization.json.Json

val json = Json { ignoreUnknownKeys = true }
val model = json.decodeFromString<Root>(responseBody)

Optionen und Sonderfälle

  • Der Generator versieht jede Data Class mit @Serializable und importiert die Annotationen von kotlinx.serialization. Er erzeugt weder Moshi-@Json noch Gson-@SerializedName.
  • Ganzzahlen verwenden Long, Brüche Double. Werte, die nur null enthalten oder unterschiedliche Typen haben, verwenden JsonElement. Nullable Felder haben null als Standardwert.
  • Ganzzahlen außerhalb des vorzeichenbehafteten 64-Bit-Bereichs werden zu Double. Dabei kann Genauigkeit verloren gehen. Verwende Strings oder einen eigenen Serializer für exakte Bezeichner.
  • Datumsstrings bleiben String. Ein einzelnes Beispiel kann nicht zeigen, ob ein Feld in jeder API-Antwort erforderlich ist.

Standardmäßig privat

Dein Dokument bleibt in diesem Browser. Tool Kumar parst und konvertiert Daten und erstellt Downloads auf deinem Gerät, ohne Konto und ohne Upload.

Kotlin-Data-Class aus JSON generieren: häufige Fragen

Welche Kotlin-Serialisierungsbibliothek wird verwendet?
kotlinx.serialization. Die Ausgabe verwendet @Serializable und ergänzt @SerialName, wenn eine Kotlin-Eigenschaft von ihrem JSON-Schlüssel abweicht.
Kann ich die Ausgabe mit Moshi verwenden?
Die Feldtypen können als Grundlage für ein Modell dienen. Die Annotationen sind aber für kotlinx.serialization vorgesehen. Ersetze sie und richte die Moshi-Codegenerierung ein, wenn deine Android-App Moshi verwendet.
Wie werden fehlende Felder und null-Werte behandelt?
Felder, die in manchen Array-Datensätzen fehlen oder als null vorkommen, werden nullable und erhalten null als Standardwert. Erforderliche Felder ohne null haben keinen Standardwert.
Erstellt das Tool Kotlin-DTOs für Android?
Ja. Es erstellt Data Classes, die sich als DTOs eignen. Richte das Kotlin-Serialization-Compiler-Plugin und die JSON-Laufzeitbibliothek in deinem Projekt ein.

Verwandte Tools

JSON in Java konvertieren, JSON in Dart konvertieren und JSON Schema generieren.