Füg links Kotlin ein und klick auf "Konvertieren" — wir machen JSON drausKotlin-Code einfügen

Was dieses Tool macht

Wer schon mal ein JSON-Payload von Hand schreiben musste, das eine data class von Kotlin abbildet — für einen Unit-Test, eine Fixture oder einen API-Call — kennt das Theater. Normalerweise holst du kotlinx.serialization dazu, annotierst die Klasse und lässt die App laufen, um die Ausgabe mitzunehmen. Füg das Kotlin hier ein und kriegst gültiges JSON ohne das Ganze — kein Gradle-Plugin, kein @Serializable, keine Runtime.

Der Converter respektiert, wie Kotlin-Werte tatsächlich serialisieren. val price: Double = 49.99 wird zu einer JSON-Number, val tags: List<String> zu einem JSON-Array, und val address: Address? mit null wird zu JSON null. Instant, LocalDate und LocalDateTime aus kotlin.stdlib kommen als ISO-8601-Strings raus. UUID wird zum Standard-Hex-String. Map<String, V> wird zu einem JSON-Objekt, und enum class-Werte erscheinen als ihr String-Name — exakt das Verhalten, das du auch von Gson oder jackson-module-kotlin bekommst.

Serialisierungs-Annotationen werden berücksichtigt. @SerialName("x") benennt den JSON-Key um, @Transient lässt die Property raus. Default-Parameterwerte werden ausgegeben, wenn die Property nicht explizit gesetzt ist. Füg mehrere data classes gleichzeitig ein und jede kommt als Top-Level-Eintrag raus, verschachtelte Typen aufgelöst und sealed class-Hierarchien flach auf ihre Varianten gebracht. Wenn du eine Android-App ausrollst, wandert die Ausgabe direkt in Retrofit-Fixtures und Room-Test-Seeds.

So nutzt du es

Drei Schritte. Läuft gleich, egal ob du eine einzelne Instance oder eine ganze Datei voller data classes einfügst.

1

Kotlin einfügen (oder Beispiel laden)

Pack dein Kotlin so wie es ist in den linken Editor. Eine data class, eine normale Klasse, eine object-Deklaration, mehrere Klassen oder sealed-Hierarchien — alles okay. Klick auf Beispiel laden, um vorher ein realistisches Beispiel zu sehen.

Du musst imports, Packages oder Annotationen nicht rausstreichen. Lass die Kotlin-Syntax stehen wie sie ist — companion objects und backing fields gehen auch.

2

Auf Konvertieren drücken

Klick auf den grünen Konvertieren-Button. Das Tool liest das Kotlin, behält jede data class und Property bei und gibt das JSON in einem Durchgang aus. Während der Arbeit läuft kurz ein Loading-Indicator.

3

JSON kopieren

Das rechte Panel füllt sich mit eingerücktem JSON. Kopier es in deinen Retrofit-Test, in eine Room-Fixture, in deine OpenAPI-Beispiele oder in einen REST-Client. Das ist die ganze Schleife.

Wenn das wirklich was bringt

API-Fixtures für Android-Apps

Du hast ein Retrofit-Request-Model und brauchst ein JSON-Payload für MockWebServer oder Postman. data class einfügen, JSON greifen, weiter.

Backend-Testdaten

Ein Ktor- oder Spring-Service mit 30 data classes. Konvertier jede einzelne in JSON-Seed-Dateien für Integrationstests, ohne eine einzige <code>@Serializable</code>-Annotation zu schreiben.

Docs, die synchron bleiben

Generier JSON-Beispiele für deine OpenAPI-Spec oder API-Referenz direkt aus den echten data classes — so driftet die Doku nie von den Modellen weg.

Config-Datei-Starter

Eine Settings-data-class mit zwei Dutzend Properties wird zu einem bearbeitungsbereiten JSON-Template — kein handgeschriebenes Boilerplate.

Häufige Fragen

Brauche ich kotlinx.serialization oder Jackson installiert?

Nein. Dieses Tool läuft serverseitig und kompiliert deinen Code nicht — du kriegst JSON ohne Plugin. Willst du Runtime-Serialisierung in deiner App, ist kotlinx.serialization die native Wahl; jackson-module-kotlin funktioniert auch.

Werden @SerialName, @Transient und @JsonProperty berücksichtigt?

Ja. @SerialName("x") und @JsonProperty("x") benennen den JSON-Key um, @Transient / @JsonIgnore nehmen die Property aus der Ausgabe raus — passend zur Semantik von kotlinx.serialization.

Was ist mit Instant, LocalDate und UUID?

Instant, LocalDate, LocalDateTime und ZonedDateTime kommen alle als ISO-8601-Strings raus. UUID wird zum Standard-8-4-4-4-12-Hex-String. Duration wird zum Duration-String.

Wie werden nullables, sealed classes und enums behandelt?

Nullable Properties mit Wert null werden zu JSON null; sonst wird der innere Typ normal serialisiert. Sealed-class-Instanzen bekommen per Default einen Type-Discriminator (konfigurierbar, wenn du kotlinx.serialization nutzt). Enums erscheinen als String-Name, sofern nicht anders annotiert.

Wird mein Code gespeichert?

Dein Code geht zur Konvertierung ans Backend und wird nicht persistiert — wir loggen das Payload nicht. Wie immer: sensiblen Code vorher kurz durchsehen, bevor du ihn einfügst.

Funktioniert das für Kotlin/JVM und Kotlin Multiplatform?

Ja. Solange die Syntax gültiges Kotlin ist, ist dem Converter egal, ob das Target JVM, JS, Native oder Multiplatform ist. Plattformspezifische Typen ohne JSON-Repräsentation (etwa Job oder Flow) kommen als null raus.

Andere Tools, die nützlich sein könnten

Kotlin zu JSON ist nur ein Puzzlestück. Folgende lassen sich gut kombinieren: