JSON en Kotlin Data Class en Ligne
Génère des data classes Kotlin depuis un JSON, gratuit, dans ton navigateur.
À quoi ça sert
De JSON à Kotlin Data Class en quelques secondes
Prêt pour Android et Kotlin
Génère du code compatible avec Retrofit, kotlinx.serialization et Room. Colle directement dans ton projet.
100 % privé
Ton JSON d'API ne quitte jamais ton navigateur. Aucune inscription, aucune télémétrie.
Types corrects
Infère String, Int, Long, Double, Boolean, List et les types nullable avec ?. Imbrication complète supportée.
Instantané
Génération en temps réel pendant que tu tapes. Aucun bouton, aucune attente.
Comment ça marche
Trois étapes, sans complications
Colle ton JSON
Colle le JSON de ton API ou fichier de config. Ça peut être un objet imbriqué ou un tableau.
Génération instantanée
L'outil génère automatiquement des data classes Kotlin avec des types inférés et des annotations de sérialisation.
Copie le code
Copie les data classes générées et utilise-les directement dans ton projet Android ou Kotlin.
FAQ
Des questions ?
Les data classes sont une fonctionnalité spéciale de Kotlin qui génère automatiquement les méthodes equals(), hashCode(), toString() et copy() à partir des propriétés déclarées dans le constructeur principal. Elles sont idéales pour représenter des modèles de données, notamment les réponses d'API REST, car elles éliminent le boilerplate que Java exigerait d'écrire manuellement ou via Lombok.
Par défaut, des propriétés val (immuables) sont générées, ce qui est la pratique recommandée en Kotlin pour les modèles de données. val signifie que la valeur ne peut pas être réassignée après l'initialisation, ce qui rend les objets plus prévisibles et sûrs en environnement multithreadé. Utilise var uniquement si tu as besoin de muter l'objet après sa création.
Oui. L'annotation @Serializable de kotlinx.serialization, la bibliothèque officielle de sérialisation JSON de Kotlin, est ajoutée. @SerialName est également ajouté quand le nom de champ JSON diffère de la convention camelCase de Kotlin, par exemple quand le JSON utilise le snake_case.
Quand une valeur dans le JSON est null, ou quand un champ n'est pas présent dans tous les objets d'un tableau, la propriété est générée comme type nullable avec l'opérateur ?. Par exemple, String? au lieu de String. En Kotlin, la distinction entre types nullable et non-nullable fait partie du système de types et le compilateur la vérifie à la compilation.
Dans le développement Android, les data classes Kotlin servent principalement à modéliser les réponses d'API REST avec Retrofit, à stocker des données dans des bases de données locales avec Room, à sérialiser des objets pour les passer entre Activities/Fragments en tant que Parcelable, et comme modèles dans les architectures MVVM ou MVI. Depuis que Google a adopté Kotlin comme langage officiel d'Android en 2019, les data classes sont le standard de facto.
Kotlin sur Android, kotlinx.serialization et Retrofit pour des API type-safe
En mai 2019, Google a annoncé que Kotlin devenait le langage préféré pour le développement Android, détrônant Java comme premier choix. Depuis, l'adoption de Kotlin dans Android a progressé au point qu'aujourd'hui plus de 95 % des 1000 applications les plus populaires sur Google Play utilisent Kotlin. Les data classes sont l'une des fonctionnalités les plus appréciées des développeurs Android, précisément parce qu'elles éliminent le boilerplate des POJOs Java.
kotlinx.serialization est la bibliothèque de sérialisation officielle de JetBrains pour Kotlin. Contrairement à Gson ou Moshi, elle est entièrement native à Kotlin, fonctionne avec la compilation multiplateforme Kotlin Multiplatform Mobile, supporte nativement les coroutines, et génère du code à la compilation au lieu d'utiliser la réflexion à l'exécution. L'annotation @Serializable sur une data class suffit pour sérialiser et désérialiser du JSON.
Retrofit, développé par Square, est la bibliothèque la plus populaire pour consommer des API REST sur Android. Combinée avec kotlinx.serialization ou Gson comme convertisseur, elle permet de définir des interfaces d'API avec des annotations (@GET, @POST, @Body) et Retrofit génère automatiquement l'implémentation. Les data classes générées par cet outil sont directement compatibles avec Retrofit comme types de retour ou paramètres de corps de requête.