JSON to Kotlin
Générez des data classes Kotlin depuis un échantillon JSON, pour kotlinx.serialization, Moshi ou Gson.
Entrée JSON
Code généré
Saisissez du JSON à gauche pour générer un type à partir de celui-ci.
Qu'est-ce que JSON to Kotlin ?
Un convertisseur JSON vers Kotlin transforme un échantillon de charge utile JSON en data classes Kotlin correspondant à sa structure. La data class est la manière canonique de Kotlin de modéliser une réponse JSON : déclarer les propriétés dans le constructeur suffit pour que le compilateur génère equals, hashCode, toString, copy et la déstructuration, donc un modèle qui serait un long POJO en Java devient quelques lignes. C'est la forme qu'attend chaque bibliothèque JSON Kotlin — kotlinx.serialization, Moshi et Gson se lient tous aux data classes — ce qui fait de leur génération depuis une vraie charge utile la route la plus rapide d'une réponse d'API vers du Kotlin typé et null-safe. Cela élimine aussi le bug d'intégration Android fréquent où un nom de propriété diffère de la clé JSON d'un caractère et se désérialise tranquillement en null.
Comment utiliser JSON to Kotlin
- Collez une réponse JSON représentative dans le panneau de gauche — les propriétés générées correspondent exactement aux clés de cet échantillon.
- Définissez un nom de classe racine au-dessus de la sortie (par défaut « Root ») ; chaque objet imbriqué devient sa propre data class nommée d'après la clé qui le contient.
- Copiez les classes dans votre projet et ajoutez ce que votre bibliothèque JSON exige — @Serializable pour kotlinx.serialization, ou rien du tout pour Moshi et Gson avec réflexion.
- Basculez le sélecteur de langue au-dessus de la sortie pour émettre la même forme en record Java, struct Go ou interface TypeScript dans un autre langage pris en charge.
Exemples
Objet plat en data class
Entrée
{"id": 1, "name": "Ada", "active": true}
Sortie
data class Root( val id: Int, val name: String, val active: Boolean, )
Objet imbriqué et une liste
Entrée
{"user": {"id": 1, "name": "Ada", "roles": ["admin"]}}
Sortie
data class User( val id: Int, val name: String, val roles: List<String>, ) data class Root( val user: User, )
Erreurs courantes
- Laisser des propriétés non nullables quand l'API les omet — kotlinx.serialization lève une MissingFieldException, et Gson peut silencieusement placer un null dans une propriété non nulle, cassant la garantie de null-safety de Kotlin d'une manière qui plante loin de la cause.
- Ajouter @Serializable sans appliquer aussi le plugin Gradle kotlinx.serialization, ce qui échoue à la compilation avec un message qui ne nomme pas clairement le plugin manquant.
- Garder Int pour des horodatages en millisecondes ou de grands identifiants, ce qui déborde silencieusement au lieu de lever une erreur.
Pourquoi utiliser cet outil
- Produit des data classes idiomatiques, donc equals, hashCode, toString et copy sont gratuits au lieu d'être écrits à la main.
- Donne à chaque objet imbriqué sa propre classe nommée, ce qu'attendent Retrofit, Moshi et kotlinx.serialization.
- Fonctionne entièrement côté client, donc une charge utile copiée d'un service Android ou Ktor ne quitte jamais votre machine pour générer ces data classes.