JSON en Go Struct en Ligne
Génère des structs Go typées avec des tags JSON. Gratuit, dans ton navigateur.
À quoi ça sert
JSON vers struct Go pour le développement d'API
Compatible avec encoding/json
Le code généré fonctionne directement avec le package standard encoding/json de Go, sans dépendances externes.
100 % privé
Ton JSON est traité dans le navigateur. Jamais envoyé à des serveurs. Idéal pour les payloads d'API sensibles.
Types correctement inférés
Détecte string, int, float64, bool, arrays et structs imbriqués. Génère le type Go le plus adapté pour chaque valeur.
Instantané
La génération se produit au fur et à mesure que tu tapes. Aucune attente, aucun formulaire à soumettre.
Comment ça marche
Trois étapes, sans complications
Colle ton JSON
Saisis ou colle le JSON qui représente ta réponse d'API ou ta structure de config. L'éditeur valide le JSON en temps réel.
Obtiens ton struct Go
L'outil génère automatiquement un struct Go avec des types inférés (string, int, float64, bool, slice, struct imbriqué) et des tags `json:"field"`.
Copie et utilise dans ton projet
Copie le code généré directement dans ton fichier .go. Compatible avec le package standard encoding/json de Go.
FAQ
Des questions ?
Go est un langage fortement typé. Pour décoder les réponses JSON d'une API, tu as besoin d'un struct qui corresponde à la structure du JSON. Définir ces structs manuellement est fastidieux et source d'erreurs. Cet outil automatise ce processus en générant des structs avec les bons types et des tags `json:` qui mappent exactement les champs du JSON d'origine.
Les tags `json:"nom"` sur les champs d'un struct indiquent au package encoding/json comment sérialiser et désérialiser ce champ. Si le JSON contient une clé `user_name`, le tag `json:"user_name"` fait correspondre ce champ au nom de champ Go que tu préfères, comme `UserName`. Sans tags, Go exige que les noms de champs correspondent exactement, en respectant la casse.
Quand le JSON contient des objets dans des objets, l'outil génère des structs imbriqués. Par exemple, `{"address": {"city": "Paris"}}` produit un struct `Address` avec le champ `City string`, et le struct parent aura `Address Address`. Les noms suivent la convention CamelCase de Go.
Go utilise le CamelCase pour les identifiants exportés. L'outil convertit automatiquement le snake_case (`user_name`), le kebab-case (`user-name`) et d'autres styles en PascalCase (`UserName`). Les champs exportés (commençant par une majuscule) sont nécessaires pour que encoding/json puisse y accéder.
En JSON, un champ peut être absent ou null. En Go, la valeur zéro de string est `""` et celle de int est `0`, ce qui rend impossible la distinction entre un champ absent et un champ à valeur zéro. En utilisant des pointeurs (`*string`, `*int`), la valeur nil indique que le champ était absent ou null. L'outil génère des pointeurs quand il déduit qu'un champ peut être optionnel à partir des valeurs null présentes dans le JSON d'exemple.
Go et Golang : adoption dans le développement d'API, sécurité des types et travail avec JSON
Go (aussi appelé Golang) a été créé par Google en 2009 et publié en 2012. Sa conception privilégie la simplicité, la compilation rapide et les performances. Contrairement à Python ou JavaScript, Go est fortement typé et compilé, ce qui signifie que les erreurs de type sont détectées à la compilation plutôt qu'à l'exécution. Cela le rend particulièrement précieux pour les services backend et les API où la fiabilité est critique.
La création d'API REST en Go implique généralement de décoder le JSON des corps de requêtes et d'encoder des structs Go en JSON dans les réponses. Le package encoding/json de la bibliothèque standard gère cette sérialisation. Les tags de struct comme `json:"field_name,omitempty"` permettent un contrôle précis du mapping des champs. Go propulse des outils comme Docker, Kubernetes, Terraform et CockroachDB.
L'adoption de Go a progressé régulièrement dans l'index TIOBE et les enquêtes Stack Overflow. Sa concurrence basée sur les goroutines et son modèle mémoire efficace en font un choix idéal pour les microservices à haut débit. Générer automatiquement des structs depuis les réponses JSON d'API externes (Stripe, Twilio, API REST internes) est une tâche quotidienne pour les développeurs Go, et automatiser ce processus fait gagner un temps considérable sur les projets avec des schémas JSON complexes ou en constante évolution.