Kotlin-naar-JSON Converter
Plak Kotlin data classes of objecten. Krijg nette JSON terug.
Wat deze tool doet
Als je ooit met de hand een JSON-payload hebt moeten schrijven die een data class van Kotlin spiegelt — voor een unittest, een fixture of een API-call — weet je hoeveel geklooi daarbij komt kijken. Normaal grijp je naar kotlinx.serialization, annoteer je de class en draai je de app om de output eruit te vissen. Plak je Kotlin hier en krijg geldige JSON terug zonder dat gedoe — geen Gradle-plugin, geen @Serializable, geen runtime.
De converter respecteert hoe Kotlin-waarden daadwerkelijk serializen. val price: Double = 49.99 wordt een JSON-number, val tags: List<String> wordt een JSON-array, en val address: Address? met null wordt JSON null. Instant, LocalDate en LocalDateTime uit kotlin.stdlib komen eruit als ISO-8601-strings. UUID wordt een standaard hex-string. Map<String, V> wordt een JSON-object, en waarden van een enum class komen als hun string-naam eruit — precies het gedrag dat je van Gson of jackson-module-kotlin zou krijgen.
Serialization-annotaties worden gerespecteerd. @SerialName("x") hernoemt de JSON-key, @Transient laat de property vallen. Default-parameterwaarden komen mee wanneer de property niet expliciet gezet is. Plak meerdere data classes tegelijk en elk komt als top-level entry naar buiten, met geneste types uitgeklapt en sealed class-hiërarchieën platgeslagen tot hun varianten. Lever je een Android-app op, dan gaat de output zo je Retrofit-fixtures en Room-test-seeds in.
Zo gebruik je het
Drie stappen. Werkt hetzelfde of je één instance plakt of een heel bestand vol data classes.
Plak je Kotlin (of laad het voorbeeld)
Gooi je Kotlin rechtstreeks in de linker editor. Een data class, een gewone class, een object-declaratie, meerdere classes of sealed-hiërarchieën — allemaal prima. Klik op Voorbeeld laden om eerst een realistisch voorbeeld te zien.
Je hoeft imports, packages of annotaties niet weg te halen. Laat de Kotlin-syntax zoals-ie is — companion objects en backing fields kunnen ook gewoon blijven staan.
Druk op Converteren
Klik op de groene Converteren-knop. De tool leest het Kotlin, behoudt elke data class en property, en spuugt de JSON in één keer uit. Ondertussen draait er even een loading-indicator.
Kopieer de JSON
Het rechterpaneel vult zich met ingesprongen JSON. Kopieer het naar je Retrofit-test, een Room-fixture, je OpenAPI-voorbeelden of een REST-client. Dat is de hele loop.
Wanneer het echt handig is
API-fixtures voor Android-apps
Je hebt een Retrofit-request-model en je wilt een JSON-payload in MockWebServer of Postman droppen. Plak de data class, pak de JSON, door.
Testdata voor de backend
Een Ktor- of Spring-service met 30 data classes. Converteer elk naar JSON-seed-files voor integratietests zonder één <code>@Serializable</code>-annotatie te schrijven.
Docs die synchroon blijven
Genereer JSON-voorbeelden voor je OpenAPI-spec of API-reference direct uit de echte data classes, zodat de docs nooit wegdrijven van de modellen.
Startpunt voor config-bestanden
Een Settings data class met twee dozijn properties wordt een bewerkbaar JSON-template — geen handgeschreven boilerplate.
Veelgestelde vragen
Moet ik kotlinx.serialization of Jackson hebben geïnstalleerd?
Nee. Deze tool draait server-side en compileert je code niet — je krijgt JSON zonder plugin. Wil je runtime-serialisatie in je app, dan is kotlinx.serialization de native keuze; jackson-module-kotlin werkt ook.
Houdt het rekening met @SerialName, @Transient en @JsonProperty?
Ja. @SerialName("x") en @JsonProperty("x") hernoemen de JSON-key, en @Transient / @JsonIgnore halen de property uit de output — conform de semantiek van kotlinx.serialization.
En Instant, LocalDate en UUID?
Instant, LocalDate, LocalDateTime en ZonedDateTime komen allemaal als ISO-8601-strings eruit. UUID wordt een standaard 8-4-4-4-12 hex-string. Duration wordt een duration-string.
Hoe gaat het om met nullables, sealed classes en enums?
Nullable properties met waarde null worden JSON null; anders wordt het inner type normaal geserializeerd. Sealed-class-instances bevatten standaard een type-discriminator (configureerbaar als je kotlinx.serialization gebruikt). Enums komen als hun string-naam eruit tenzij anders geannoteerd.
Wordt mijn code opgeslagen?
Je code gaat naar de backend voor de conversie en wordt niet bewaard — we loggen de payload niet. Zoals altijd: kijk gevoelige code even na voordat je plakt.
Werkt het voor zowel Kotlin/JVM als Kotlin Multiplatform?
Ja. Zolang de syntax geldig Kotlin is, maakt het de converter niet uit of de target JVM, JS, Native of Multiplatform is. Platform-specifieke types zonder JSON-representatie (zoals Job of Flow) komen als null eruit.
Andere tools die je kunnen helpen
Kotlin naar JSON is één puzzelstukje. Deze passen er goed bij: