UTILS.
100 % dans le navigateur
🐹

JSON vers struct Go

Convertissez un échantillon JSON en structs Go typés avec des tags json. Infère int64, float64, bool, structs imbriqués et slices dans votre navigateur.

sortie

À propos de cet outil

Collez un échantillon JSON et cet outil génère des structs Go prêts à l'emploi, avec des tags `json:"field"` pour chaque clé. Tout s'exécute localement dans votre navigateur, si bien que votre JSON n'est jamais envoyé où que ce soit.

Le générateur appelle JSON.parse et parcourt le résultat de manière récursive : les chaînes deviennent string, les booléens deviennent bool, les nombres entiers deviennent int64 et les nombres avec une décimale deviennent float64, null devient interface{}, les tableaux deviennent un slice du type du premier élément ([]interface{} lorsqu'ils sont vides), et chaque objet devient son propre struct imbriqué nommé. Les noms de champs sont convertis en PascalCase exporté (avec les sigles courants comme ID et URL en majuscules) tandis que la clé d'origine est conservée dans le tag json.

Utilisez-le pour amorcer des modèles Go à partir d'une réponse d'API ou d'un fichier de configuration, puis affinez les types à la main là où c'est nécessaire. Comme JSON n'a pas de type entier distinct, une valeur comme 1.0 est lue comme un entier ; ajoutez une décimale (1.5) si vous voulez float64.

Foire aux questions

Comment les nombres sont-ils typés ?
Une valeur analysée sans partie fractionnaire devient int64 ; une valeur avec une décimale devient float64. JSON ne peut pas distinguer 1 de 1.0, donc les deux sont lus comme int64.
Que se passe-t-il avec les objets et tableaux imbriqués ?
Chaque objet devient un struct nommé distinct ; les tableaux deviennent un slice du type du premier élément, ou []interface{} si le tableau est vide ou si l'élément est null.
Les noms de champs sont-ils du Go valide ?
Les clés sont converties en PascalCase exporté et la clé d'origine est conservée dans un tag json, si bien que le JSON fait correctement l'aller-retour même pour des noms comme user_id ou first-name.
Mon JSON est-il envoyé à un serveur ?
Non. L'analyse et la génération de code se font entièrement dans votre navigateur ; rien n'est envoyé ni stocké.

Plus d'outils