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 ?
Go utilise des structs pour les données structurées. Lors du unmarshalling de JSON avec encoding/json, vous avez besoin de structs avec des champs et types correspondants. La spécification JSON définit les objets, tableaux, chaînes et nombres—mais Go nécessite des définitions de struct explicites pour chaque objet imbriqué. Les écrire à la main est fastidieux et sujet aux erreurs quand le JSON est volumineux ou complexe.
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 <code>[]Type</code>. Les tags JSON mappent les champs du struct aux clés JSON. Utilisez <code>json.Unmarshal(data, &v)</code> 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 <strong>Copier</strong> pour mettre le résultat dans le presse-papiers, ou <strong>Télécharger</strong> pour le sauvegarder en fichier <code>.go</code>. 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 <code>config.json</code> ou <code>settings.json</code> 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
Pourquoi les 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" mappe le champ du struct à la clé JSON. Activez les tags JSON dans la configuration pour que les structs générés fonctionnent correctement avec json.Unmarshal et json.Marshal.
Pointeurs pour champs optionnels ?
Si un champ JSON peut être null ou manquant, utilisez *Type pour distinguer entre valeur zéro (ex. chaîne vide) et absent. Sans pointeurs, vous ne pouvez pas faire la différence. Activez Utiliser les pointeurs dans la configuration pour les champs optionnels ou nullable.
Mes données sont-elles envoyées quelque part ?
Non. La génération s'exécute entièrement dans votre navigateur en JavaScript. Aucune donnée n'est envoyée à un serveur. Vous pouvez le confirmer en ouvrant l'onglet Réseau de votre navigateur.
Et omitempty ?
Ajoutez omitempty au tag JSON pour les champs que vous ne voulez pas en sortie quand ils sont vides : json:"name,omitempty". Modifiez la sortie si nécessaire. Le générateur n'ajoute pas omitempty par défaut car cela dépend de votre cas d'usage.
Interface{} pour JSON dynamique ?
Pour une structure inconnue ou très variable, utilisez map[string]interface{} ou interface{}. Cet outil génère des structs typés pour des formes connues. Si votre structure JSON change fréquemment, vous préférerez peut-être interface{}.
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.