Convertisseur JSON en code

Transformez un échantillon JSON en interfaces TypeScript, structs Go, structs serde Rust, schéma Zod ou JSON Schema.

Chargement de l'outil…

Convertisseur JSON en codeCollez un échantillon JSON représentatif et obtenez instantanément du code fortement typé dans votre langage cible : interfaces TypeScript, structs Go avec balises json, structs serde Rust, schéma Zod ou JSON Schema draft-07. Les types sont déduits directement des données : les objets imbriqués deviennent des types nommés, les tableaux infèrent le type de leur élément, et les champs absents de certains éléments d'un tableau sont marqués comme optionnels. Tout s'exécute dans votre navigateur, votre JSON n'est donc jamais téléversé.

Qu'est-ce que Convertisseur JSON en code ?

JSON en code est un générateur de types gratuit qui fonctionne dans le navigateur : il lit un échantillon JSON et écrit le modèle de données correspondant dans le langage que vous choisissez. Choisissez une cible dans le menu Convertir en (interface TypeScript, struct Go, struct serde Rust, schéma Zod ou JSON Schema) et définissez un Nom du type racine pour étiqueter le type de premier niveau. Le moteur d'inférence parcourt le JSON : les chaînes, les nombres, les booléens et null sont associés à des types natifs, les objets imbriqués sont remontés en types nommés à part entière, les tableaux adoptent le type de leur élément, et les clés absentes de certains éléments d'un tableau deviennent optionnelles. Les développeurs frontend et backend l'utilisent pour générer des DTO à partir de réponses d'API, esquisser des schémas de validation et garder les types client et serveur synchronisés sans écrire de code répétitif à la main.

Comment utiliser Convertisseur JSON en code

  1. Collez ou saisissez un échantillon JSON représentatif dans la zone de saisie, ou cliquez sur Exemple pour en charger un.
  2. Ouvrez les Paramètres et choisissez une cible sous Convertir en : TypeScript, Go, Rust, Zod ou JSON Schema.
  3. Définissez le Nom du type racine pour contrôler le nom de l'interface, du struct ou du schéma de premier niveau.
  4. Lisez le code généré dans le panneau de sortie ; il se met à jour automatiquement à mesure que vous modifiez le JSON ou changez les options.
  5. Consultez la statistique Types pour voir combien de types nommés ont été déduits, puis cliquez sur Copier pour récupérer le résultat.

Exemples

Objet vers interface TypeScript

Entrée

{ "id": 1, "name": "Ada", "active": true }

Sortie

export interface Root {
  id: number;
  name: string;
  active: boolean;
}

Objet imbriqué vers struct Go

Entrée

{ "user": { "age": 30 } }

Sortie

type User struct {
	Age float64 `json:"age"`
}

type Root struct {
	User User `json:"user"`
}

Tableau avec une clé manquante vers un schéma Zod

Collez un tableau comme [{"a":1,"b":2},{"a":3}] et basculez Convertir en sur Zod. Comme le second élément n'a pas de b, le générateur marque b comme .optional() dans le z.object déduit, de sorte que le schéma accepte les deux formes.

Questions fréquentes

Mon JSON est-il téléversé quelque part ?
Non. L'analyse et la génération de code s'exécutent entièrement dans votre navigateur grâce à un moteur d'inférence intégré. Votre JSON ne quitte jamais votre appareil et l'outil continue de fonctionner hors ligne.
Quelles cibles sont prises en charge ?
Interfaces TypeScript, structs Go (avec balises json et omitempty pour les champs optionnels), structs serde Rust (avec les derives Serialize/Deserialize et rename lorsqu'un champ est renommé), schémas Zod et JSON Schema draft-07. L'outil ne génère que ce qu'il peut déduire fidèlement de votre échantillon.
Comment les champs optionnels sont-ils déterminés ?
À partir de votre échantillon. Lorsqu'un tableau contient des objets et qu'une clé manque dans certains d'entre eux, cette clé est déduite comme optionnelle. À part cela, chaque clé présente dans l'échantillon est traitée comme obligatoire.
Qu'en est-il des nombres, des null et des types mixtes ?
Les nombres sont associés au type à virgule flottante du langage (number, float64, f64), null est associé à un type nullable ou valeur selon la cible, et un champ qui contient des types différents d'un échantillon à l'autre se rabat sur un type permissif (unknown, interface{}, serde_json::Value) plutôt que de deviner.
Pourquoi ma sortie est-elle vide ou affiche-t-elle une erreur ?
L'entrée doit être du JSON valide. Si l'analyse échoue, l'outil affiche l'erreur avec la ligne et la colonne lorsque c'est possible ; corrigez l'endroit signalé et le code se régénère instantanément.

Outils connexes