JSON vers types TypeScript / C#
Génère des interfaces TypeScript ou des classes C# à partir d’un exemple JSON, en déduisant les types imbriqués et les champs optionnels et nullables.
Chargement…
Mode d’emploi
- Collez un exemple JSON (par exemple une réponse d’API) dans la zone.
- Dans Sortie, choisissez TypeScript interface ou C# class.
- Saisissez le Nom du type racine pour le type de premier niveau (Root s’il est vide). Si le JSON est un tableau, ses éléments deviennent un type portant ce nom suivi de Item, par exemple RootItem.
- Le code se met à jour pendant la saisie. Chaque objet imbriqué devient un type distinct, nommé d’après sa clé en PascalCase, et les objets d’un tableau reçoivent un nom au singulier (items devient Item).
- Cliquez sur Copier pour copier le code. Si l’entrée n’est pas du JSON valide, JSON invalide s’affiche avec le message de l’analyseur.
Questions fréquentes
- Mon JSON est-il envoyé à un serveur ?
- Non. Les types sont générés dans votre navigateur.
- Comment les champs optionnels et nullables sont-ils déterminés ?
- Les objets d’un même tableau sont fusionnés en un seul type. Un champ absent de certains d’entre eux est optionnel (un ? après le nom en TypeScript, un type nullable en C#), et un champ qui vaut null quelque part dans l’exemple reçoit | null en TypeScript et ? en C#.
- Quels types numériques sont utilisés ?
- TypeScript utilise number pour tous les nombres. En C#, les entiers deviennent int, les entiers hors de la plage de int (±2147483647) deviennent long et les nombres à virgule deviennent double ; si un champ mélange ces cas, le type le plus large est retenu. Notez que 1.0 compte comme un entier en JSON.
- Que se passe-t-il pour les tableaux mixtes, les tableaux vides et les champs toujours null ?
- En TypeScript, des valeurs de types différents forment une union comme string | number ; un tableau mixte devient donc (string | number)[]. C# n’a pas d’unions et utilise object. Un tableau vide devient unknown[] ou List<object>, et un champ toujours null devient null ou object?.
- Comment les noms de propriétés C# sont-ils choisis ?
- Les clés JSON sont converties en PascalCase (user_id devient UserId). Quand le nom de la propriété diffère de la clé, un attribut [JsonPropertyName] de System.Text.Json conserve la clé d’origine ; en TypeScript, les clés qui ne sont pas des identifiants valides restent entre guillemets.