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

1

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.

2

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, &amp;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.

3

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 :

Entrée

Sortie Go générée :

Sortie

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.