JSON vers Go
Convertir JSON en structs POJO Go pour le développement Go
Entrée JSON
Sortie Go
Qu'est-ce que JSON vers Go ?
Vous venez d'appeler une API REST dans Postman, la réponse est en JSON, et vous devez la désérialiser en Go — mais écrire le struct à la main pour une réponse profondément imbriquée est vraiment pénible. JSON et le package encoding/json de Go fonctionnent très bien ensemble, mais Go exige des définitions de struct explicites pour chaque objet imbriqué. Oubliez un champ ou déclarez un mauvais type, et votre désérialisation retourne silencieusement des valeurs zéro. Cet outil génère l'arbre de structs complet depuis votre JSON pour que vous puissiez le coller directement dans votre projet.
Cet outil génère des structs Go à partir de votre JSON. Définissez le nom du struct et du package dans le panneau de configuration. Activez les tags JSON pour json:"field_name" afin que les champs du struct soient correctement mappés aux clés camelCase ou snake_case. Activez les pointeurs pour les champs optionnels ou nullable afin de distinguer entre valeur zéro et absent. La sortie est prête à coller dans votre projet et à utiliser avec json.Unmarshal().
La conversion s'exécute entièrement dans votre navigateur. Votre JSON n'est jamais envoyé à un serveur. Vous pouvez le confirmer en ouvrant l'onglet Réseau de votre navigateur.
Comment utiliser cet outil
Coller ou importer JSON
Copiez votre JSON et collez-le dans l'éditeur de gauche. Vous pouvez aussi cliquer sur Importer pour charger un fichier .json ou .txt. Utilisez le bouton Exemple pour des données d'exemple. Dans le panneau de configuration, définissez le nom du struct (ex. User) et du package (ex. models). Activez les tags JSON pour les tags struct json:"key". Activez les pointeurs pour les champs optionnels ou nullable.
Vérifier les structs générés
Le panneau de droite affiche les structs Go générés. Les objets imbriqués deviennent des structs imbriqués ou séparés. Les tableaux deviennent []Type. Les tags JSON mappent les champs du struct aux clés JSON. Utilisez json.Unmarshal(data, &v) pour parser votre JSON dans le struct. Si votre JSON a une syntaxe invalide, corrigez-le d'abord avec le Formatage JSON ou le Validateur JSON.
Copier ou télécharger
Utilisez Copier pour mettre le résultat dans le presse-papiers, ou Télécharger pour le sauvegarder en fichier .go. Collez dans votre projet Go. Vous devrez peut-être ajouter des imports ou ajuster les noms de package.
Exemples JSON vers Go
Voici un exemple de génération de structs Go à partir d'un objet JSON.
Exemple : Enregistrement abonné
Entrée JSON :
Sortie Go générée :
Quand JSON vers Go aide
La plupart des développeurs ont besoin de cela lors de l'intégration avec des APIs. Vous envoyez une requête via Postman ou curl, et la réponse arrive en JSON. La coller ici vous donne des structs typés à utiliser avec encoding/json. Pour extraire des valeurs spécifiques de grandes réponses, jq fonctionne bien en ligne de commande.
Les fichiers de configuration sont un autre cas courant. Un config.json ou settings.json avec des objets imbriqués nécessite souvent un struct Go pour un accès type-safe. Si vous devez fusionner deux fichiers JSON d'abord, il y a l'outil Fusion JSON.
Les exports de base de données de MongoDB, Firestore ou CouchDB sont typiquement de gros blobs JSON. Les traiter ici vous aide à comprendre la structure du document et à générer des structs Go pour les scripts d'importation ou les requêtes.
Questions fréquentes
Comment générer des structs Go depuis JSON automatiquement ?
Collez votre JSON dans cet outil et il génère des structs Go instantanément. Activez les tags JSON pour que les noms de champs se mappent correctement aux clés JSON. Copiez la sortie dans votre projet Go — prête pour json.Unmarshal().
Pourquoi les structs Go ont besoin de tags JSON ?
Les noms de champs de struct Go doivent être exportés (majuscules) pour JSON. JSON utilise souvent camelCase ou snake_case. Le tag json:"fieldName" indique à encoding/json quelle clé JSON correspond à quel champ. Sans tags, json.Unmarshal fait un matching insensible à la casse qui peut rater des champs silencieusement.
Mes données sont-elles envoyées quelque part ?
Non. Tout s'exécute dans votre navigateur — votre JSON ne quitte jamais votre machine. Vérifiable via l'onglet Réseau. Sûr pour les données de production.
Et omitempty ?
Ajoutez omitempty au tag JSON pour les champs à ne pas inclure dans la sortie quand ils sont vides : json:"name,omitempty". Le générateur ne l'ajoute pas par défaut car ça dépend du cas d'usage — modifiez la sortie après génération.
Quand utiliser des pointeurs pour les champs ?
Utilisez *Type pour les champs optionnels ou nullable. Avec un pointeur, un champ JSON manquant donne nil, que vous pouvez vérifier. Sans pointeurs, un champ manquant donne la valeur zéro et vous ne pouvez pas savoir s'il était absent ou vide.
Outils connexes
Pour la gestion JSON en Go, voir encoding/json. Pour JSON, voir la spécification JSON et RFC 8259. Pour une vue d'ensemble, voir MDN JSON. Pour les tests API, voir Postman. Pour les tags struct Go, voir la spécification Go. Voir aussi jq pour le traitement JSON.