Was dieses Werkzeug tut
Aus einer JSON-Probe werden Kotlin-Data-Classes, eine je Objekt.
{ "id": 1, "firstName": "Ada", "address": { "city": "Paris" } }
data class Root(
val id: Long,
val firstName: String,
val address: Address,
)
data class Address(
val city: String,
)
Jede Eigenschaft ist ein val: eine dekodierte Nutzlast ist ein Wert. Data Classes bringen equals, hashCode, toString und copy() mit — Letzteres ist, wie Sie ein Feld ändern, ohne etwas zu mutieren.
Der Schlüssel bleibt der Schlüssel
Kotlin-Bezeichner lassen sich in Backticks schreiben, und das genügt, um einen JSON-Schlüssel unverändert zu behalten:
data class Root(
val `content-type`: String,
val `class`: Long,
val `2fa`: Boolean,
)
class ist ein Schlüsselwort, content-type trägt einen Bindestrich, 2fa beginnt mit einer Ziffer — zwischen Backticks zählt nichts davon. Mit kotlinx.serialization ist der Eigenschaftsname der JSON-Name, das dekodiert also so, wie es dasteht, ganz ohne Annotation.
Mit Jackson oder Moshi ist der Eigenschaftsname ebenfalls das Gesuchte, die Backtick-Namen funktionieren dort also auch. Erst wenn Sie eine Eigenschaft umbenennen — contentType statt `content-type` — brauchen Sie @JsonProperty("content-type") oder @Json(name = "content-type"), um wieder auf den Schlüssel zu zeigen.
Typen, und das ?, das nicht da ist
- Ganzzahlen werden
Long, DezimalzahlenDouble— was eine JSON-Zahl ohne Diskussion trägt. nullund unbekannte Werte werdenAny?— die einzige Stelle mit einem Fragezeichen, weil es die einzige ist, an der die Probe eines zeigte.- Ein leeres oder gemischtes Array wird
List<Any>.
Sonst ist nichts nullbar und nichts hat einen Vorgabewert. Ein manchmal fehlendes Feld ist ein ? und ein = null, das Sie ergänzen, sobald eine zweite Nutzlast Ihnen gesagt hat, was diese nicht konnte.
Zwei Schlüssel, zwei Eigenschaften
Zwei Schlüssel, die als Eigenschaftsnamen kollidieren würden, werden getrennt gehalten statt verschmolzen: der zweite bekommt ein nummeriertes Suffix. Da der Backtick-Name der JSON-Name ist, sind Kollisionen hier selten — sie treten nur auf, wenn eine Reparatur unvermeidlich ist.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.