Aller au contenu principal
CuteJSON
↑↓ Naviguer Enter Selectionner Esc Fermer

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.

Retour a tous les outils

Raccourcis clavier

Cela fonctionne partout où l'action correspondante existe sur cette page.

Ouvrir la palette de commandes
Ctrl/Cmd + K
Executer l action principale
Ctrl/Cmd + Enter
Formater
Ctrl/Cmd + Shift + F
Minifier
Ctrl/Cmd + Shift + M
Copier le resultat
Ctrl/Cmd + Shift + C
Ouvrir un fichier
Ctrl/Cmd + Shift + O
Telecharger le resultat
Ctrl/Cmd + S
Fermer cette boite de dialogue
Esc
Ouvrir cette boite de dialogue
F1 / ?

Donnees locales

Tout ce qui suit est stocke uniquement dans ce navigateur, sur cet appareil. Rien de tout cela n est jamais envoye ou que ce soit, et fermer cette boite de dialogue n est pas necessaire pour que cela reste vrai.

Brouillons non enregistres
Outils avec des options memorisees

Fichiers ouverts recemment

    Aucun fichier ouvert pour l instant sur cet appareil.

    Partager via un lien

    Le contenu est place dans la partie du lien apres le signe #, que les navigateurs n envoient jamais a un serveur. Rien ici n est envoye vers cutejson.com ni ailleurs.

    Partage la premiere entree de cette page. Sur un outil qui en a plus d une, seule celle-la est incluse.

    Rien a partager pour l instant. Collez ou tapez quelque chose d abord.

    Entree

    Charger depuis une URL

    Recupere l URL directement depuis votre navigateur et charge dans ce panneau le texte renvoye.

    Sortie

    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

    1. Collez un document, ou plusieurs enregistrements dans un tableau, dans le volet de saisie.
    2. Choisissez un langage de sortie et un nom racine, ajustez ses options, puis appuyez sur Generer les types.
    3. Copiez les declarations ou telechargez les comme fichier.