JSON vers structures Go
JSON to Go Structs
Produit des structures Go avec leurs balises json à partir d’un échantillon, types imbriqués et répétés compris.
Génère des structs Go avec des tags `json:` à partir d'un document d'exemple : un corps de réponse devient quelque chose dans quoi `encoding/json` sait désérialiser. Les noms de champs sont exportés et en camel case, et la clé d'origine est conservée dans le tag — c'est la partie que l'on rate à la main.
JSON d’exemple
Déposez un fichier .json
Lu dans cet onglet. Rien n’est envoyé.
Donnez-lui tous les éléments dont vous disposez. Chaque enregistrement supplémentaire resserre la déduction : un champ absent de l’un d’eux est précisément ce qui le rend facultatif.
TypeScript
Comment s’en servir
Collez autant d'enregistrements que vous en avez
Chaque élément de chaque tableau est lu et fusionné, pas seulement le premier. Trois enregistrements en disent bien plus qu'un seul, car un champ absent de l'un d'eux est précisément ce qui rend ce champ facultatif.
Nommez le type racine
Les objets imbriqués sont nommés d'après la clé qui les porte, mise au singulier pour les tableaux : `users` donne donc un `User`. Seule la racine attend un nom de votre part.
Lisez les décomptes sous la sortie
Types, champs facultatifs, unions et nombre d'enregistrements fusionnés. Un décompte d'unions supérieur à zéro signifie qu'un champ portait deux sortes de valeurs différentes dans votre échantillon — cela vaut la peine d'y regarder avant de coller le résultat dans une base de code.
Collez les structs dans un package
Les champs absents de certains enregistrements reçoivent `,omitempty` dans leur tag, pour qu'un aller-retour de sérialisation ne les invente pas. Aucune clause `package` n'est émise — vous savez où cela va.
Questions fréquentes
Pourquoi chaque nombre est-il un `float64` ?
Uniquement quand l'échantillon comportait une valeur décimale. Si tous les nombres du document étaient entiers, le champ est émis avec un type entier. Rien ne permet de distinguer un `1` JSON qui est un identifiant d'un `1` JSON qui est un prix arrondi : l'échantillon est toute la preuve dont on dispose.
Et un champ qui vaut null dans certains enregistrements ?
Il devient un type pointeur, c'est ainsi que Go distingue « absent ou null » de « zéro ». Le déréférencer demande donc un test nil — pénible, et c'est la raison pour laquelle l'autre solution (une valeur simple qui se lit silencieusement 0 ou "") est pire.
Gère-t-il une clé qui n'est pas un identifiant Go valide ?
Le nom du champ est nettoyé — séparateurs supprimés, chaque partie capitalisée — et la clé brute reste dans le tag `json:`, qui est ce qui fait réellement la correspondance. Une clé `user-id` devient quelque chose comme `UserID`, avec `json:"user-id"` à côté.
Des champs `time.Time` sont-ils produits ?
Non. Un horodatage en JSON est une chaîne, et le transformer en `time.Time` changerait ce que la désérialisation accepte. Si vous le voulez, changez le type du champ à la main — `encoding/json` analyse le RFC 3339 en `time.Time` de lui-même.
À alimenter depuis
JSON vers TypeScript
JSON to TypeScript
Déduit des interfaces ou des types TypeScript à partir d’un échantillon JSON, en fusionnant les champs facultatifs et les unions.
JSON vers structures Rust
JSON to Rust Structs
Produit des structures Rust annotées pour serde à partir d’un échantillon, avec Option pour les champs absents ou nuls et un renommage en snake_case.
Formateur et validateur JSON
JSON Formatter & Validator
Met en forme, minifie et valide du JSON en désignant la ligne et la colonne exactes de l’erreur de syntaxe.
Formateur et validateur YAML
YAML Formatter & Validator
Réindente le YAML de façon cohérente, le valide et signale les tabulations et les ancres qui font échouer les analyseurs.
Ensuite
Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.
Formateur et validateur JSON
JSON Formatter & Validator
Met en forme, minifie et valide du JSON en désignant la ligne et la colonne exactes de l’erreur de syntaxe.
JSON vers structures Rust
JSON to Rust Structs
Produit des structures Rust annotées pour serde à partir d’un échantillon, avec Option pour les champs absents ou nuls et un renommage en snake_case.
JSON vers TypeScript
JSON to TypeScript
Déduit des interfaces ou des types TypeScript à partir d’un échantillon JSON, en fusionnant les champs facultatifs et les unions.
Encodeur et décodeur Base64
Base64 Encoder & Decoder
Encode et décode en Base64 et en Base64URL, pour du texte comme pour des fichiers, avec un traitement correct de l’UTF-8.
curl vers code
curl to Code
Traduit une commande curl en fetch, axios, requests Python, Go, PHP ou PowerShell.
Hachage de texte
Text Hash
Calcule le MD5, le SHA-1, le SHA-256, le SHA-384, le SHA-512 et le CRC-32 d’une chaîne, avec sortie en majuscules ou en Base64.