Colle le Kotlin à gauche et clique sur "Convertir" — on te le transforme en JSONColle ton code Kotlin

À quoi sert cet outil

Si tu as déjà dû rédiger à la main un payload JSON qui reflète une data class Kotlin — pour un test unitaire, une fixture ou un appel API — tu sais à quel point c'est pénible. Normalement tu sors kotlinx.serialization, tu annotes la classe et tu lances l'app pour capturer la sortie. Colle ton Kotlin ici et récupère un JSON valide sans rien de tout ça — pas de plugin Gradle, pas de @Serializable, pas de runtime.

Le convertisseur respecte la façon dont Kotlin sérialise vraiment ses valeurs. val price: Double = 49.99 devient un nombre JSON, val tags: List<String> devient un tableau JSON, et val address: Address? à null devient null en JSON. Instant, LocalDate et LocalDateTime de kotlin.stdlib sortent en chaînes ISO-8601. UUID devient une chaîne hex standard. Map<String, V> devient un objet JSON, et les valeurs d'une enum class sortent sous leur nom string — exactement ce que tu obtiendrais avec Gson ou jackson-module-kotlin.

Les annotations de sérialisation sont respectées. @SerialName("x") renomme la clé JSON, @Transient retire la propriété. Les valeurs par défaut des paramètres sont émises quand la propriété n'est pas explicitement fixée. Colle plusieurs data class d'un coup et chacune sort en entrée de premier niveau, avec les types imbriqués développés et les hiérarchies sealed aplaties en leurs variantes. Si tu expédies une app Android, la sortie s'injecte directement dans les fixtures Retrofit et les seeds de tests Room.

Comment l'utiliser

Trois étapes. Ça marche pareil que tu colles une instance isolée ou un fichier entier rempli de data classes.

1

Colle ton Kotlin (ou charge l'exemple)

Lâche ton Kotlin dans l'éditeur de gauche tel quel. Une data class, une classe classique, une déclaration d'object, plusieurs classes, ou des hiérarchies sealed — tout passe. Clique sur Charger un exemple pour voir un cas réaliste d'abord.

Pas besoin de virer les imports, les packages ou les annotations. Laisse la syntaxe Kotlin telle quelle — les companion objects et backing fields passent aussi.

2

Clique sur Convertir

Appuie sur le bouton vert Convertir. L'outil lit le Kotlin, conserve chaque data class et propriété, et émet le JSON en une passe. Un petit indicateur de chargement tourne pendant ce temps.

3

Copie le JSON

Le panneau de droite se remplit de JSON indenté. Copie-le dans ton test Retrofit, une fixture Room, tes exemples OpenAPI ou un client REST. C'est toute la boucle.

Quand ça dépanne vraiment

Fixtures d'API pour app Android

Tu as un modèle de requête Retrofit et il te faut un payload JSON à balancer dans MockWebServer ou Postman. Colle la data class, récupère le JSON, next.

Données de test backend

Un service Ktor ou Spring avec 30 data classes. Convertis chacune en fichiers JSON de seed pour tes tests d'intégration sans écrire une seule annotation <code>@Serializable</code>.

Docs qui restent à jour

Génère des exemples JSON pour ta spec OpenAPI ou la référence d'API directement depuis les vraies data classes, pour que la doc ne dérive jamais des modèles.

Squelettes de fichiers de config

Une data class Settings avec deux douzaines de propriétés devient un template JSON prêt à éditer — zéro boilerplate écrit à la main.

Questions fréquentes

J'ai besoin de kotlinx.serialization ou Jackson installés ?

Non. Cet outil tourne côté serveur et ne compile pas ton code — tu obtiens du JSON sans plugin. Si tu veux de la sérialisation runtime dans ton app, kotlinx.serialization est le choix natif ; jackson-module-kotlin marche aussi.

Il respecte @SerialName, @Transient et @JsonProperty ?

Oui. @SerialName("x") et @JsonProperty("x") renomment la clé JSON, et @Transient / @JsonIgnore retirent la propriété de la sortie — conforme à la sémantique de kotlinx.serialization.

Et pour Instant, LocalDate et UUID ?

Instant, LocalDate, LocalDateTime et ZonedDateTime sortent tous en chaînes ISO-8601. UUID devient une chaîne hex standard 8-4-4-4-12. Duration devient une chaîne de durée.

Comment sont gérés les nullables, sealed classes et enums ?

Les propriétés nullable à null deviennent null en JSON ; sinon le type interne se sérialise normalement. Les instances de sealed class embarquent un discriminateur de type par défaut (configurable si tu utilises kotlinx.serialization). Les enums sortent sous leur nom string sauf annotation contraire.

Est-ce que mon code est stocké ?

Ton code est envoyé au backend pour la conversion et n'est pas persisté — on ne logue pas le payload. Comme toujours, jette un œil rapide au code sensible avant de le coller.

Ça marche pour Kotlin/JVM et Kotlin Multiplatform ?

Oui. Tant que la syntaxe est du Kotlin valide, le convertisseur se moque de la cible : JVM, JS, Native ou Multiplatform. Les types spécifiques à une plateforme qui n'ont pas de représentation JSON (comme Job ou Flow) sortent en null.

Autres outils qui peuvent te servir

Kotlin vers JSON n'est qu'une pièce du puzzle. Ceux-ci s'associent bien :