JSON vers TypeScript
Transformez un document que vous avez deja en interfaces TypeScript, en dataclasses Python, en structs Go ou en structs Rust pretes a coller dans un projet.
Entree
La coloration syntaxique est desactivee pour ce document, car recolorer un texte aussi long a chaque frappe ralentirait la saisie. Tous les outils continuent de fonctionner normalement.
Sortie
La coloration syntaxique est desactivee pour ce document, car recolorer un texte aussi long a chaque frappe ralentirait la saisie. Tous les outils continuent de fonctionner normalement.
Le resultat apparait ici.
Tout fonctionne dans votre navigateur. Rien de ce que vous collez n est envoye, et vous pouvez le verifier dans l onglet Reseau de votre navigateur.
A propos de cet outil
Les types viennent de la meme deduction que le generateur de schema, si bien que les deux pages sont d accord sur votre document et ne different que par l ecriture. Un objet imbrique devient un type nomme plutot qu un type en ligne, parce qu un type en ligne a trois niveaux de profondeur est illisible et que rien d autre ne peut y faire reference. Les noms viennent de la cle qui porte la valeur, au singulier dans un tableau, et un nom deja pris recoit un numero pour que la sortie compile toujours. Une cle absente d un enregistrement est marquee optionnelle par un point d interrogation. Un objet vide devient un enregistrement de unknown plutot qu une interface vide, et un tableau vide un tableau de unknown, puisque l echantillon ne dit rien de ce qu il aurait contenu. Tous les nombres sont number, car TypeScript n a pas de type entier. Passer le langage de sortie a Python ecrit la meme forme deduite comme des dataclasses a la place: un objet imbrique devient une classe imbriquee, nommee et dedupliquee de la meme facon, et une cle absente d un enregistrement devient Optional avec une valeur par defaut None, placee apres chaque champ toujours present, puisque Python exige cet ordre. Python garde int et float separes, contrairement a la sortie TypeScript. Passer a Go ecrit la meme forme comme des structs a la place, chaque champ portant une etiquette json avec la cle d origine, pour que le code genere se remarshale exactement dans le document dont il vient. Une cle absente d un enregistrement, ou parfois explicitement null, devient un pointeur, avec une etiquette omitempty ajoutee seulement quand cela compte vraiment, puisque Go traite deja une tranche ou une map absente comme nil sans en avoir besoin. Go garde aussi les entiers et les decimaux separes, en int64 et float64. Passer a Rust ecrit des structs avec des derives serde: les champs passent en snake_case avec un attribut rename de serde ajoute seulement quand cela change vraiment le nom, une cle absente d un enregistrement devient Option avec skip_serializing_if pour qu elle redevienne absente plutot que null a la reserialisation, et un mot reserve de Rust qui correspond a une cle JSON, comme type, s ecrit comme identifiant brut pour que la sortie compile toujours.
Comment ca marche
- Collez un document, ou plusieurs enregistrements dans un tableau, dans le volet de saisie.
- Choisissez un langage de sortie et un nom racine, ajustez ses options, puis appuyez sur Generer les types.
- Copiez les declarations ou telechargez les comme fichier.