Développeur 🔒 Fonctionne dans votre navigateur — aucune donnée envoyée

JSON vers types

Transformez un exemple JSON en interfaces TypeScript, structs Go, modèles Python, classes C#, structs Rust ou en JSON Schema.

JSON vers types - TypeScript, Go, Python, C#, Rust et JSON Schema

Collez un exemple JSON, par exemple la réponse d'une API, et obtenez les définitions de types qui vont avec : interfaces TypeScript, structs Go avec tags JSON, modèles Pydantic ou dataclasses, classes C#, structs Rust pour serde, ou un JSON Schema. Les objets imbriqués deviennent des types nommés à part entière, si bien que le résultat se lit comme du code écrit à la main.

Les réponses d'API contiennent souvent de vraies données clients, des jetons et des identifiants internes. La conversion s'exécute entièrement dans votre navigateur : rien de tout cela n'est envoyé nulle part.

Mode d'emploi

  1. Collez du JSON dans la zone de gauche, ou cliquez sur Exemple pour voir une démonstration.
  2. Choisissez le langage de Sortie.
  3. Indiquez le Nom racine du type de premier niveau ; pour TypeScript, choisissez interface ou type.
  4. Copiez le résultat dans votre projet.

Comment les types sont déduits

  • Nombres : ils deviennent des entiers quand toutes les valeurs sont entières, des flottants sinon ; 42 et 18.5 dans le même champ donnent un flottant.
  • Tableaux d'objets : ils sont fusionnés, et chaque clé vue dans n'importe quel élément apparaît dans le type.
  • Champs optionnels : avec Rendre optionnelles les clés absentes activé, une clé absente de certains éléments devient optionnelle (coupon?: string, omitempty, Option, = None).
  • Champs nullables : une valeur null dans un seul élément rend le champ nullable, par exemple string | null, ou *string en Go.
  • Types mélangés, comme un nombre dans un élément et une chaîne dans un autre : ils donnent unknown, Any ou interface{}, pour que vous tranchiez à la main.
  • Noms : ils viennent des clés. address donne Address, et les éléments de orders donnent Order. Les objets de même forme partagent un seul type.

Langage par langage

SortieCe que vous obtenez
TypeScriptexport interface ou export type ; les clés qui ne sont pas des noms valides sont mises entre guillemets
GoDes structs exportées avec tags json, int64 et float64, et les sigles courants comme ID et URL
Python (Pydantic)Des classes BaseModel ; des champs en snake_case avec Field(alias=...) quand la clé JSON diffère
Python (dataclass)Des classes @dataclass, avec les champs optionnels placés en dernier comme l'exigent les dataclasses
C#Des classes avec [JsonPropertyName] pour System.Text.Json, long, double et List<T>
RustDes structs qui dérivent Serialize et Deserialize, avec #[serde(rename)] si nécessaire
JSON SchemaUn schéma draft 2020-12 avec des listes required, prêt pour les validateurs

Obtenir les types les plus exacts

Un type n'est jamais plus complet que l'exemple dont il vient. Utilisez une réponse qui contient chaque champ optionnel au moins une fois, et collez un tableau avec plusieurs éléments différents plutôt qu'un seul, pour que la fusion voie quels champs varient. Les dates arrivent en JSON sous forme de chaînes et restent des chaînes ; convertissez-les dans votre code là où il vous faut de vrais types date.

Outils liés

Pour mettre en forme ou valider le JSON d'abord, utilisez le formateur JSON. Pour le transformer en YAML, CSV ou XML, utilisez le convertisseur JSON. Les pages dédiées ouvrent cet outil avec un langage déjà choisi : JSON vers TypeScript, JSON vers Go, JSON vers Python, JSON vers C# et générateur de JSON Schema.

Guides associés