DT Dev Tools

Convertir JSON en Go — GĂ©nĂ©rateur de structs

Convertissez du JSON en structs Go en ligne avec tags json, omitempty, pointeurs pour les champs optionnels et fonctions d'unmarshal. Gratuit, instantané et privé.

🔒 S'exĂ©cute entiĂšrement dans votre navigateur — rien n'est envoyĂ©

Publicité

Générer des structs Go à partir de JSON

Écrire Ă  la main des structs Go pour une grosse rĂ©ponse d'API est long et source d'erreurs. Ce convertisseur JSON vers Go le fait instantanĂ©ment : collez un exemple de JSON et il gĂ©nĂšre des types struct exportĂ©s, avec des noms de champs correctement casĂ©s et des tags json qui relient chaque champ Ă  sa clĂ© d'origine. Les objets imbriquĂ©s deviennent des structs nommĂ©es distinctes, les tableaux deviennent des slices, les entiers et les flottants sont distinguĂ©s en int64 et float64, et les horodatages ISO 8601 sont reconnus comme time.Time. La sortie est prĂȘte pour encoding/json sans retouche supplĂ©mentaire.

L'outil repose sur quicktype, qui examine chaque Ă©lĂ©ment de chaque tableau avant de choisir un type. Si un Ă©lĂ©ment d'une liste porte un champ que les autres n'ont pas, ce champ devient un pointeur afin de distinguer la valeur zĂ©ro de la valeur absente — un dĂ©tail que les convertisseurs Ă  passe unique manquent souvent.

Les options qui comptent en Go

DĂ©finissez le nom du package pour que le fichier compile lĂ  oĂč vous le dĂ©posez. Activez omitempty si vous resĂ©rialisez aussi ces structs en JSON et voulez que les champs optionnels absents le restent. Par dĂ©faut, le gĂ©nĂ©rateur ajoute autour du type racine de petites fonctions Unmarshal
 et Marshal ; cochez Structs only si vous prĂ©fĂ©rez appeler vous-mĂȘme json.Unmarshal et n'avez besoin que des types. Renommez la struct racine de Root en nom mĂ©tier de votre choix — par exemple Repository ou WebhookEvent.

Obtenir le meilleur résultat

Fournissez au convertisseur un exemple représentatif : un tableau de plusieurs éléments, des champs optionnels renseignés et des objets imbriqués remplis plutÎt que vides. Les tableaux vides et les valeurs null n'apportent aucune information à l'inférence, qui retombe sur interface{}. AprÚs avoir collé le code, exécutez gofmt, vérifiez les types numériques lorsque l'exemple ne montre pas toute la plage de valeurs, et remplacez les chaßnes génériques par des types dédiés lorsque votre API documente des valeurs fixes. Comme tout le traitement a lieu dans votre navigateur, les données internes ou clients ne quittent jamais votre machine.

Comment utiliser

  1. Collez le JSONCollez une réponse d'API ou n'importe quel document JSON, ou chargez l'exemple.
  2. Choisissez les optionsDéfinissez le nom de la struct racine et le package, puis décidez d'omitempty et des fonctions utilitaires.
  3. Copiez les structsCopiez le code Go ou téléchargez un fichier .go et lancez gofmt comme d'habitude.

Questions fréquemment posées

Ajoute-t-il des tags de struct json ?
Oui. Chaque champ reçoit un tag `json:"key"` qui conserve la clé JSON d'origine, et vous pouvez ajouter ,omitempty aux champs optionnels d'une simple case à cocher.
Comment les champs optionnels et nuls sont-ils gérés ?
Les champs absents ou nuls dans certains exemples deviennent des types pointeur comme *string, ce qui permet de distinguer une valeur absente d'une valeur zéro.
À quoi servent les fonctions utilitaires ?
Par défaut, la sortie inclut les fonctions UnmarshalRoot et Marshal. Cochez Structs only pour obtenir uniquement les déclarations de types.
Mon JSON est-il envoyé à un serveur ?
Non. La conversion s'exécute dans votre navigateur avec quicktype compilé en JavaScript ; rien n'est envoyé.
Publicité