Indsæt Kotlin til venstre og klik på "Konverter" — vi laver det om til JSONIndsæt Kotlin-kode

Hvad dette værktøj gør

Hvis du nogensinde har måttet håndskrive en JSON-payload der spejler en data class fra Kotlin — til en unit test, en fixture eller et API-kald — ved du hvor meget bøvl det er. Normalt trækker du kotlinx.serialization ind, annoterer klassen og kører appen for at fange outputtet. Indsæt din Kotlin her og få gyldig JSON retur uden noget af det — ingen Gradle-plugin, ingen @Serializable, ingen runtime.

Konverteren respekterer hvordan Kotlin-værdier faktisk serialiseres. val price: Double = 49.99 bliver til et JSON-tal, val tags: List<String> til en JSON-array, og val address: Address? med null bliver til JSON null. Instant, LocalDate og LocalDateTime fra kotlin.stdlib kommer ud som ISO-8601-strenge. UUID bliver en standard hex-streng. Map<String, V> bliver et JSON-objekt, og værdier i en enum class kommer ud som deres string-navn — præcis den opførsel du ville få fra Gson eller jackson-module-kotlin.

Serialization-annotationer respekteres. @SerialName("x") omdøber JSON-nøglen, @Transient dropper propertyen. Default-parameterværdier skrives ud når propertyen ikke er sat eksplicit. Indsæt flere data class-er på én gang og hver enkelt kommer ud som et top-level entry, med nestede typer foldet ud og sealed class-hierarkier fladet ud til deres varianter. Hvis du shipper en Android-app, ryger outputtet lige ind i Retrofit-fixtures og Room-test-seeds.

Sådan bruger du det

Tre trin. Virker på samme måde, uanset om du indsætter en enkelt instans eller en hel fil fuld af data classes.

1

Indsæt din Kotlin (eller indlæs eksemplet)

Smid din Kotlin ind i den venstre editor som den er. En data class, en almindelig klasse, en object-deklaration, flere klasser eller sealed-hierarkier — det hele er fint. Klik på Indlæs eksempel for først at se et realistisk case.

Du behøver ikke fjerne imports, packages eller annotationer. Lad Kotlin-syntaksen stå som den er — companion objects og backing fields går også fint.

2

Tryk Konverter

Klik på den grønne Konverter-knap. Værktøjet læser Kotlinen, bevarer hver data class og property, og spytter JSON ud i ét hug. Imens kører en kort loading-indikator.

3

Kopier JSON'en

Højre panel fyldes med indrykket JSON. Kopier det ind i din Retrofit-test, en Room-fixture, dine OpenAPI-eksempler eller en REST-klient. Det er hele loopen.

Hvornår det faktisk er en hjælp

API-fixtures til Android-apps

Du har en Retrofit-requestmodel og mangler en JSON-payload at smide i MockWebServer eller Postman. Indsæt data class, tag JSON'en, videre.

Testdata til backenden

En Ktor- eller Spring-service med 30 data classes. Konverter hver enkelt til JSON-seed-filer til integrationstest uden at skrive en eneste <code>@Serializable</code>-annotation.

Docs der følger med

Generer JSON-eksempler til din OpenAPI-spec eller API-reference direkte fra de rigtige data classes, så dokumentationen aldrig driver væk fra modellerne.

Startskeletter til config-filer

En Settings data class med et par dusin properties bliver til en redigeringsklar JSON-skabelon — ingen håndskrevet boilerplate.

Almindelige spørgsmål

Skal jeg have kotlinx.serialization eller Jackson installeret?

Nej. Værktøjet kører server-side og kompilerer ikke din kode — du får JSON uden plugin. Vil du have runtime-serialisering i din app er kotlinx.serialization det native valg; jackson-module-kotlin virker også.

Respekterer det @SerialName, @Transient og @JsonProperty?

Ja. @SerialName("x") og @JsonProperty("x") omdøber JSON-nøglen, og @Transient / @JsonIgnore fjerner propertyen fra outputtet — matcher kotlinx.serialization-semantikken.

Hvad med Instant, LocalDate og UUID?

Instant, LocalDate, LocalDateTime og ZonedDateTime kommer alle ud som ISO-8601-strenge. UUID bliver en standard 8-4-4-4-12 hex-streng. Duration bliver en duration-streng.

Hvordan håndteres nullables, sealed classes og enums?

Nullable properties med værdien null bliver til JSON null; ellers serialiseres den indre type som normalt. Sealed class-instanser indeholder som default en type discriminator (konfigurerbar hvis du bruger kotlinx.serialization). Enums kommer ud som deres string-navn med mindre de er annoteret anderledes.

Bliver min kode gemt?

Din kode sendes til backenden til konvertering og bliver ikke persisteret — vi logger ikke payloaden. Som altid, giv følsom kode et hurtigt kig før du indsætter.

Virker det for både Kotlin/JVM og Kotlin Multiplatform?

Ja. Så længe syntaksen er gyldig Kotlin, er konverteren ligeglad med om targetet er JVM, JS, Native eller Multiplatform. Platformsspecifikke typer uden JSON-repræsentation (som Job eller Flow) kommer ud som null.

Andre værktøjer du kan få brug for

Kotlin til JSON er én brik. Disse passer godt til det: