Vous êtes hors ligne. Les outils déjà ouverts continuent de fonctionner.
JSON en data class Kotlin
Collez du JSON et obtenez des data classes Kotlin avec des propriétés val. Les champs optionnels et null deviennent nullables avec null par défaut, et les annotations kotlinx.serialization sont ajoutées si vous le souhaitez.
Gratuit et privé. Tout se passe dans votre navigateur, rien n'est envoyé.
Signaler un problème
Comment ça marche
Collez votre JSONCollez une réponse de votre API ou ouvrez un fichier .json. Cliquez sur Exemple pour voir un cas concret.
Réglez les optionsIndiquez le nom du type principal et les options de ce langage. Le code se met à jour pendant que vous tapez.
Copiez ou téléchargezCopiez le code dans votre projet ou téléchargez-le sous forme de fichier.
Des data classes pour Android et le code serveur
Chaque objet JSON devient une data class avec des propriétés en camelCase. Avec kotlinx.serialization activé, chaque classe est marquée @Serializable et @SerialName conserve la clé d'origine partout où le nom de propriété diffère. Les champs de type inconnu utilisent JsonElement, que kotlinx.serialization sait lire sans code supplémentaire.
Les champs absents de certains éléments ou qui peuvent être null sont écrits avec un type nullable et = null, pour que le décodage n'échoue pas quand ils manquent. Les dates restent des String, car kotlinx.serialization n'a pas de type date intégré ; ajoutez votre propre sérialiseur ou utilisez kotlinx-datetime si vous avez besoin d'objets date. Sans les annotations, les classes fonctionnent aussi avec Moshi, Gson ou Jackson.
Questions fréquentes
Pourquoi certaines propriétés sont-elles nullables ?
Parce que l'exemple montre qu'elles peuvent manquer ou valoir null. Les rendre non nullables ferait échouer le décodage sur ce type de données.
Mon JSON est-il envoyé quelque part ?
Non. Les types sont générés dans votre navigateur. Les réponses d'API qui contiennent des données clients ou des clés ne quittent jamais votre appareil.
Comment les champs optionnels sont-ils détectés ?
Si le JSON contient une liste d'objets, chaque objet est comparé aux autres. Un champ absent d'au moins un objet est marqué optionnel. Avec un seul objet, tous les champs sont considérés comme obligatoires.
Que se passe-t-il avec les champs toujours null ?
Leur type ne peut pas être connu à partir de l'exemple, ils reçoivent donc un type général comme unknown, object, Any ou JsonElement. Ajoutez un exemple où le champ a une valeur pour obtenir un type précis.
Pourquoi mon 1.0 est-il typé comme un nombre décimal ?
L'outil regarde comment le nombre est écrit. 1.0 ou 2.5 deviennent double ou float, 1 devient un entier. Si un champ est entier dans certains éléments et décimal dans d'autres, c'est le type décimal qui est utilisé.
Puis-je utiliser le résultat dans du code en production ?
Oui, le code compile tel quel dans les configurations habituelles. Relisez les noms et les types avant de le valider, car un exemple ne montre jamais toutes les valeurs possibles.
Est-ce que ça fonctionne hors ligne ?
Oui. Après une première visite de la page, l'outil continue de fonctionner sans connexion internet.
Déposez le fichier pour voir ce que vous pouvez en faire