Aller au contenu
Tout en local

JSON vers Structure Go

Convertissez un exemple JSON en définitions de structure Go avec des types et des balises déduits.

Entrée
Sortie

JSON vers Structure Go

Collez un exemple JSON et cet outil générera les définitions de structure Go correspondantes avec des balises json. Il déduit int, float64, string, bool et null pour chaque champ, crée des structures nommées ou intégrées pour les objets imbriqués, et détermine les types de tranches pour les tableaux — y compris les tranches d'objets qui ont leur propre structure réutilisable.

Les options façonnent le code généré. Nommez la structure racine vous-même ou laissez l'outil la déduire. Choisissez comment les balises sont écrites — conservez la clé d'origine ou convertissez-la en snake_case ou camelCase, indépendamment de la façon dont le champ d'origine a été nommé. Activez "Ajouter omitempty" pour l'ajouter à chaque balise, et "Pointeurs pour les champs optionnels" pour marquer les champs manquants ou nuls dans les parties de l'exemple avec un type de pointeur. Lorsque les objets du tableau ont des champs légèrement différents, "Fusionner les formes des éléments du tableau" les combine dans une structure avec des champs supplémentaires marqués comme optionnels au lieu d'abandonner le type d'élément. Pour les valeurs que l'outil ne peut pas déterminer, choisissez interface{}, l'alias any ou json.RawMessage pour le décodage différé.

C'est l'étape avant d'écrire un client API ou un chargeur de configuration en Go : collez une réponse réelle ou un exemple de configuration et obtenez une structure initiale au lieu de saisir manuellement les noms de champs et les balises. Les structures imbriquées peuvent rester comme des types nommés séparés pour réutilisation ailleurs dans le paquet, ou être rendues en ligne lorsqu'une forme n'est utilisée qu'une seule fois. Pour les champs dont la balise ne correspond plus à la clé JSON d'origine, un commentaire avec la clé d'origine est disponible.

Tout s'exécute localement dans votre navigateur — le JSON que vous collez, qui pourrait inclure des réponses API réelles ou une configuration interne, n'est jamais téléchargé. Copiez le résultat, téléchargez-le en tant que fichier .txt ou replacez la sortie dans l'entrée pour affiner l'exemple et régénérer.

FAQ

Gère-t-il les objets et tableaux imbriqués?
Oui. Les objets imbriqués deviennent leur propre structure nommée (ou une structure anonyme intégrée si vous l'activez), les tableaux deviennent des tranches, et une tranche d'objets réutilise une structure lorsque chaque élément a la même forme.
Que se passe-t-il si les objets du tableau n'ont pas tous les mêmes champs?
Avec "Fusionner les formes des éléments du tableau" activé (par défaut), l'outil fusionne chaque champ qu'il a vu dans les éléments dans une structure, marquant les champs manquants dans certains éléments comme optionnels. Désactivez-le et l'outil revient à un type d'élément dynamique.
Puis-je contrôler comment les balises JSON sont nommées?
Oui, avec l'option de format de balise JSON: conservez la clé d'origine exactement comme elle apparaît dans l'exemple, ou convertissez chaque clé en snake_case ou camelCase.
Quel type j'obtiens pour un champ que l'outil ne peut pas déduire?
interface{}, l'alias any ou json.RawMessage, selon l'option que vous choisissez — RawMessage est utile lorsque vous souhaitez décoder ce champ vous-même ultérieurement.
Mon JSON est-il téléchargé quelque part?
Non. La génération de structure s'exécute entièrement dans votre navigateur — le JSON que vous collez ne quitte jamais votre appareil.