Générateur de code à partir de JSON

Collez un exemple JSON et obtenez des types de modèle prêts à l'emploi pour TypeScript, C#, Python, Go, Java ou Kotlin. Les champs absents de certains éléments deviennent optionnels, les valeurs null deviennent nullables et les objets imbriqués reçoivent leur propre type nommé.

Gratuit et privé. Tout se passe dans votre navigateur, rien n'est envoyé.

Comment ça marche

  1. Collez un exemple JSONCollez une réponse d'API ou ouvrez un fichier .json. Plus un tableau contient d'éléments, meilleur est le résultat.
  2. Choisissez un langageChoisissez TypeScript, C#, Python, Go, Java ou Kotlin et le style que vous utilisez, par exemple record ou dataclass.
  3. Copiez le codeVérifiez les types générés, puis copiez-les ou téléchargez-les sous forme de fichier.

Des types déduits de vraies données

Écrire à la main les classes de modèle d'une grosse réponse d'API prend du temps et les erreurs arrivent vite. Cet outil lit votre exemple JSON et détermine le type de chaque champ. Quand une liste contient plusieurs objets, ils sont tous comparés : un champ que certains objets n'ont pas devient optionnel, et un champ qui vaut null dans certains objets devient nullable.

Les nombres sont séparés en entiers et en décimaux, et les entiers qui dépassent la plage des 32 bits deviennent long ou int64. Les chaînes qui ressemblent à des dates ISO, comme 2026-10-27 ou 2026-10-27T09:30:00Z, peuvent devenir des types date en C#, Python, Go et Java. Les objets imbriqués reçoivent leur propre type, nommé d'après leur clé, et les objets de même forme partagent un seul type.

Des noms qui suivent chaque langage

Les clés comme user_name, First Name ou createdAt sont converties dans le style de nommage du langage : propriétés en PascalCase en C#, snake_case en Python, camelCase en Java et Kotlin, noms exportés en Go. Quand le nouveau nom diffère de la clé JSON, la clé d'origine est conservée dans un attribut ou un tag, pour que la sérialisation corresponde toujours aux données. Les mots réservés et les clés qui commencent par un chiffre sont renommés sans risque.

Le résultat est un point de départ. Vérifiez les types de champs qui n'ont pas pu être déterminés à partir de votre exemple, par exemple un champ toujours null ou une liste toujours vide.

Questions fréquentes

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.