Générateur JSON vers types gratuit
Convertissez du JSON en interfaces TypeScript, structs Go ou types Rust. Gratuit, rapide et fonctionne entièrement dans votre navigateur sans inscription.
Mis à jour le
JSON to Types Converter
Convert JSON to TypeScript, Go, Rust, Python, C#, Java, Kotlin, Swift, Dart, Scala, PHP, or Zod schemas.
JSON Input
Generated TypesTypeScript
interface User {
id: number;
name: string;
email: string;
isActive: boolean;
profile: Profile;
tags: string[];
metadata?: null;
}
interface Profile {
bio: string;
avatar: string;
social: Social;
}
interface Social {
twitter: string;
github: string;
}Questions Fréquentes
Qu'est-ce que JSON to Types ?
JSON to Types est un outil en ligne gratuit qui convertit des données JSON en définitions de types pour les interfaces TypeScript, les structs Go, les types Rust et d'autres langages.
JSON to Types est-il gratuit ?
Oui, il est entièrement gratuit et ne nécessite aucune inscription. Toute la conversion s'effectue côté client, dans votre navigateur.
Quels langages de sortie sont pris en charge ?
JSON to Types génère des définitions de types pour TypeScript, Go, Rust, Python (dataclasses) et d'autres langages à typage statique.
Mes données sont-elles en sécurité avec cet outil ?
Absolument. JSON to Type Generator traite tout côté client, dans votre navigateur. Aucune donnée n'est envoyée ni stockée sur un serveur. Votre contenu reste privé sur votre appareil à tout moment.
JSON to Type Generator fonctionne-t-il sur les appareils mobiles ?
Oui, JSON to Type Generator est entièrement responsive et fonctionne sur smartphones et tablettes. Vous pouvez l'utiliser sur n'importe quel appareil doté d'un navigateur web moderne, sans aucun téléchargement d'application.
Dois-je créer un compte pour utiliser cet outil ?
Aucun compte ni inscription n'est nécessaire. Ouvrez simplement JSON to Type Generator dans votre navigateur et commencez à l'utiliser immédiatement. Il n'y a ni barrière d'inscription ni restriction d'utilisation.
Comment utiliser JSON to Type Generator ?
Saisissez simplement votre entrée dans le champ prévu, ajustez les paramètres selon vos préférences, et l'outil la traitera instantanément. Vous pouvez ensuite copier le résultat dans le presse-papiers ou le télécharger.
Quels navigateurs sont pris en charge ?
JSON to Type Generator fonctionne sur tous les navigateurs modernes, dont Chrome, Firefox, Safari, Edge et Opera. Pour une expérience optimale, utilisez la dernière version de votre navigateur préféré.
Comment l'outil décide-t-il si un nombre JSON devient un entier ou un flottant ?
Le convertisseur examine chaque valeur numérique et opère une distinction intelligente plutôt que de traiter tous les nombres de la même façon. Un nombre entier comme 42 est associé au type entier du langage cible — int64 en Go, i64 en Rust, int en Python — tandis qu'une valeur avec une décimale comme 19.99 devient un float ou un double. C'est important car JSON ne possède qu'un seul type numérique, donc le struct ou l'interface généré perdrait sinon cette distinction et vous obligerait à la corriger à la main. Gardez à l'esprit que la décision se base sur l'exemple que vous collez : si un champ peut contenir aussi bien 5 que 5.5, fournissez un exemple montrant la décimale pour obtenir le type le plus large. Collez un payload représentatif ci-dessus et les types entier et flottant déduits apparaissent instantanément.
Quelle différence entre générer une interface TypeScript et un schéma Zod à partir de JSON ?
Une interface TypeScript est un type à la compilation : elle indique au compilateur la forme de vos données mais disparaît à l'exécution, donc elle ne vérifie jamais réellement un payload entrant. Un schéma Zod est un validateur à l'exécution — il inspecte les données réelles pendant que votre code s'exécute et lève une erreur si un champ est manquant ou du mauvais type, tout en pouvant déduire un type TypeScript correspondant. Utilisez la sortie interface lorsque vous faites confiance à la source et souhaitez simplement l'autocomplétion de l'éditeur et les vérifications à la compilation ; choisissez la sortie Zod lorsque vous traitez des réponses d'API non fiables ou des entrées de formulaire et avez besoin d'une véritable garde-fou à la frontière. Les deux sont disponibles comme cibles distinctes ici, vous pouvez donc générer l'une ou l'autre à partir du même JSON. Collez votre exemple et choisissez TypeScript ou Zod pour les comparer.
Comment le convertisseur gère-t-il un tableau JSON qui mélange différents types de valeurs ?
Lorsqu'un tableau contient plus d'un type de valeur, l'outil examine chaque élément au lieu de se replier sur un type fourre-tout vague. Dans la sortie TypeScript, il exprime le résultat sous forme d'union — un tableau contenant des chaînes et des nombres devient (string | number)[] plutôt que any[] — ce qui préserve une vraie sécurité de typage. Pour un tableau uniforme d'objets, il fait encore plus intelligent : il construit un type d'élément réutilisable unique et met le nom du champ au singulier pour le nommer, donc un tableau tags donne un type Tag référencé par le parent. Cela garde les définitions générées propres et idiomatiques au lieu d'intégrer des formes dupliquées en ligne. Comme l'inférence se base sur les éléments réellement présents, incluez un exemple de chaque variante dans votre échantillon pour obtenir l'union la plus précise. Collez un tableau mixte ci-dessus pour voir l'union générée automatiquement.
Que change le bouton Optional nulls dans les types générés ?
Le bouton Optional nulls contrôle la façon dont les champs contenant null dans votre exemple sont exprimés dans la sortie. Lorsqu'il est activé, chaque champ nul est marqué comme optionnel selon la convention propre au langage cible : un modificateur ? sur les propriétés TypeScript, Optional[...] en Python, Option<...> en Rust, et un tag ,omitempty en Go. Lorsqu'il est désactivé, le champ conserve un type simple, non optionnel. L'activer est utile lorsqu'une clé peut légitimement être absente ou nulle dans les réponses réelles, car cela évite que le type n'impose une valeur qui pourrait ne pas exister. Notez que l'outil ne sait qu'un champ est nullable que si l'exemple collé montre effectivement null pour ce champ, donc incluez ces cas dans votre exemple. Activez Optional nulls ci-dessus et observez la sortie se mettre à jour en direct pour le langage sélectionné.
Comment l'outil nomme-t-il les types distincts qu'il crée à partir d'objets JSON imbriqués ?
Plutôt que d'intégrer un objet imbriqué à l'intérieur de son parent, le convertisseur l'extrait dans son propre type nommé. Un objet profile situé à l'intérieur d'un utilisateur devient ainsi une définition Profile autonome que le parent référence, ce qui garde chaque type petit et réutilisable. Les noms sont dérivés des clés JSON puis ajustés selon le langage : les noms de types sont mis en PascalCase, tandis que les noms de champs sont réécrits selon la convention de chaque écosystème — snake_case pour Rust et Python, camelCase pour les autres. Fait essentiel, la clé JSON d'origine est conservée dans un tag de sérialisation ou un attribut de renommage, comme le tag json:"..." de Go ou les CodingKeys de Swift, afin que l'encodage et le décodage restent cohérents dans les deux sens même après renommage. Vous pouvez aussi définir un nom de type racine pour nommer le type de premier niveau. Collez un objet imbriqué ci-dessus pour voir les types enfants nommés générés pour vous.
Outils Associés
Testeur d'API en Ligne Gratuit
Testez des API REST avec des requêtes GET, POST, PUT et DELETE. Gratuit, rapide et entièrement dans votre navigateur, sans inscription.
Convertisseur cURL en Code Gratuit
Convertissez des commandes cURL en code JavaScript, Python ou PHP. Gratuit, rapide et entièrement dans votre navigateur, sans inscription.
Générateur de JSON Schema Gratuit
Générez un JSON Schema à partir de vos données JSON automatiquement. Gratuit, rapide et entièrement dans votre navigateur, sans inscription.
Analyseur d'En-têtes HTTP Gratuit
Analysez et inspectez les en-têtes HTTP des requêtes et des réponses. Gratuit, rapide et entièrement dans votre navigateur, sans inscription.
À propos du générateur de types à partir de JSON
Le générateur de types à partir de JSON transforme un exemple de JSON en définitions de types prêtes à l'emploi pour un langage typé statiquement. Collez une vraie réponse d'API ou un objet de configuration, donnez un nom au type racine, choisissez un langage cible, et l'outil déduit la structure de vos données puis génère les interfaces, structs, classes ou schémas correspondants. Il s'adresse aux développeurs backend et frontend confrontés à la même corvée récurrente : un payload JSON arrive sans typage, et quelqu'un doit écrire les types à la main pour que le compilateur puisse détecter les erreurs.
Tout se passe dans votre navigateur. Votre JSON est analysé et converti localement avec le JSON.parse natif du navigateur, si bien que rien n'est envoyé à un serveur, journalisé ou stocké. C'est important quand le payload contient des données réelles — jetons d'authentification, fiches clients, ou un contrat d'API interne que vous préférez ne pas coller dans un service distant. Aucune inscription n'est requise et il n'y a aucune limite d'utilisation.
Langages et formats de sortie générés
Le convertisseur produit des définitions de types pour douze cibles, chacune respectant les conventions idiomatiques de son écosystème :
- TypeScript —
interfaceou aliastype(au choix) - Go — structs avec des tags de champ
json:"..." - Rust — structs avec les macros Serde
#[derive(Serialize, Deserialize)] - Python — définitions
@dataclassavec annotations de type - Zod — schémas de validation à l'exécution, accompagnés d'un type TypeScript déduit automatiquement
- C# — classes avec
[JsonProperty](Newtonsoft.Json) - Java — POJO avec
@JsonPropertyde Jackson et getters/setters - Kotlin — déclarations
data classavec@SerializedNamede Gson - Swift — structs
CodableavecCodingKeyslà où les clés sont renommées - Dart — classes avec
fromJson/toJsonpour Flutter - Scala — définitions
case class - PHP — classes typées avec un constructeur qui les hydrate à partir d'un tableau
Comment fonctionne l'inférence de types
L'outil parcourt votre JSON et associe chaque valeur à un type natif approprié. Les chaînes deviennent string / String / str ; les booléens sont mappés vers le type booléen du langage ; et les nombres sont traités intelligemment — un nombre entier devient un type entier (int64 en Go, i64 en Rust, int en Python), tandis qu'une valeur décimale devient un float ou un double. Les objets imbriqués sont extraits dans leurs propres types nommés plutôt que d'être intégrés en ligne : un objet profile niché dans un utilisateur devient ainsi une définition Profile distincte, référencée par le parent.
Les tableaux sont analysés pour en déduire le type des éléments. Un tableau d'objets produit un type d'élément réutilisable, et l'outil met le nom du champ au singulier pour le nommer — un tableau tags donne par exemple un type d'élément Tag. Lorsqu'un tableau mélange plusieurs types, la sortie TypeScript l'exprime sous forme d'union, comme (string | number)[], plutôt que de se rabattre sur un vague any.
Le nommage est ajusté selon le langage : les noms de types sont mis en PascalCase, et les champs sont réécrits selon la convention de chaque langage (snake_case pour Rust et Python, camelCase pour les autres), tout en conservant la clé JSON d'origine dans un tag ou un attribut de renommage, afin que la sérialisation reste cohérente dans les deux sens.
Options, gestion des valeurs nulles et export
Un champ de nom de type racine vous permet de nommer le type de premier niveau — pratique lorsque le fichier généré porte ce même nom. Pour TypeScript, vous pouvez basculer entre une sortie en interface ou en type. Le bouton Optional nulls contrôle la façon dont les valeurs null sont traitées : lorsqu'il est activé, un champ nul est marqué comme optionnel selon la convention propre à chaque langage — un modificateur ? en TypeScript, Optional[...] en Python, Option<...> en Rust, ,omitempty en Go, et ainsi de suite.
La conversion se fait en direct : la sortie se met à jour au fur et à mesure de vos modifications, et si l'entrée n'est pas un JSON valide, l'outil le signale avec un message « Invalid JSON » plutôt que de produire des types cassés. Une fois satisfait du résultat, copiez-le dans votre presse-papiers ou téléchargez-le sous forme de fichier avec l'extension appropriée (.ts, .go, .rs, .py, etc.), nommé d'après votre type racine. Collez votre JSON ci-dessus, choisissez un langage, et les types correspondants apparaissent instantanément.