Utilisez ce générateur JSON vers TypeScript pour créer des interfaces et des types sécurisés à partir d'exemples JSON pour les applications frontales et les services Node.js.
Étape 1 – Collez un échantillon JSON
- Collez un objet ou un tableau JSON représentatif dans l'éditeur de gauche.
- Incluez des objets imbriqués, des tableaux et des champs nullables afin que les types soient correctement déduits.
- Utilisez
Import pour charger JSON à partir d'un fichier, d'une URL ou d'un exemple de données.
Étape 2 – Choisissez les options de génération TypeScript
- Définissez un
Root Type Name qui correspond à votre modèle (par exemple Root). - Choisissez une stratégie de gestion nulle (
Optional (?) vs Union (| null)) pour correspondre à votre base de code. - Décidez si vous souhaitez des alias
interfaces ou type pour la sortie.
Étape 3 – Vérifiez le code généré
- Vérifiez les noms de champs, les types et la façon dont les tableaux/objets sont modélisés.
- Ajustez les options telles que
Root Type Name, la gestion des valeurs nulles et les frameworks si disponibles. - Si un champ est déduit de manière incorrecte, modifiez votre exemple JSON et régénérez-le.
Étape 4 – Utiliser les types générés
- Collez la sortie dans votre projet et exportez-la depuis vos types de modules.
- Utilisez les types pour les réponses d'API, les DTO et les limites d'analyse d'exécution.
- Régénérez lorsque votre charge utile JSON change pour garder les clients synchronisés.
Étape 5 – Copier ou télécharger
- Copiez la sortie dans votre projet ou téléchargez-la sous forme de fichier.
- Exécutez votre formateur/linter pour qu'il corresponde à votre style de code.
- Ajoutez des bibliothèques d'analyse/sérialisation JSON si votre langage l'exige.
Exemple de résultat (simplifié)
// Entrée JSON
{
"id": 123,
"name": "Maeve Winters",
"email": "[email protected]",
"active": true,
"roles": ["admin", "editor"],
"metadata": { "plan": "pro" },
"createdAt": "2024-03-01T10:15:00Z",
"score": 99.5,
"notes": null
}
// Generated TypeScript types (simplified)
export interface Metadata {
plan: string;
}
export interface Root {
id: number;
name: string;
email: string | null;
active: boolean;
roles: string[];
metadata: Metadata;
createdAt: string;
score: number;
notes: null;
}