OpenReplay Logo
12k
12k

Convertisseur JSON vers Go

Convertissez n'importe quel échantillon JSON en structs Go typés avec des tags json — traité localement dans votre navigateur, rien n'est envoyé.

Traité localement

À propos de cet outil

Les structs Go sont la façon idiomatique de modéliser le JSON en Go : chaque champ exporté porte un tag de struct `json:"..."` que le paquet standard `encoding/json` utilise pour sérialiser et désérialiser les données. Ce convertisseur analyse un échantillon JSON, déduit un type Go pour chaque valeur — `int` pour les nombres entiers, `float64` pour les décimales, `string`, `bool`, `interface{}` pour null ou inconnu, et `[]T` pour les tableaux — et émet des noms de champs exportés en PascalCase tout en conservant la clé d'origine dans le tag. Les tableaux d'objets sont fusionnés en une seule forme afin que le struct généré inclue chaque clé rencontrée parmi les éléments.

Utilisez-le pour générer les types de requête et de réponse d'une API HTTP, modéliser un fichier de configuration ou une charge utile de webhook, ou transformer un document d'exemple issu d'un magasin NoSQL en structs typés que vous pouvez coller directement dans votre paquet. Nommez le struct racine, activez `,omitempty` sur les tags, et choisissez entre des types nommés distincts pour les objets imbriqués ou des structs anonymes en ligne — pratique pour des modèles ponctuels rapides par opposition à des types partagés réutilisables.

Tout s'exécute côté client dans votre navigateur — votre JSON est analysé localement et n'est jamais envoyé à un serveur.

Questions fréquentes

Comment les types JSON sont-ils mis en correspondance avec les types Go ?

Les nombres entiers deviennent `int`, les décimales deviennent `float64`, les chaînes deviennent `string`, les booléens deviennent `bool`, et `null` (ou tout élément inconnu) devient `interface{}`. Les tableaux deviennent une slice Go `[]T` du type de l'élément, et les objets imbriqués deviennent des structs nommés (ou des structs anonymes en ligne si vous activez cette option).

Pourquoi mes noms de champs comme user_id sont-ils transformés en UserID ?

Go exporte les champs qui commencent par une lettre majuscule, les clés sont donc converties en PascalCase. Les sigles courants — ID, URL, API, HTTP — sont conservés entièrement en majuscules pour respecter les conventions de golint, de sorte que `user_id` devient `UserID` et `api_url` devient `APIURL`. La clé d'origine est préservée dans le tag de struct json.

Que fait l'option omitempty ?

Ajouter `,omitempty` à un tag de struct indique à `encoding/json` de laisser ce champ hors du JSON sérialisé lorsqu'il contient sa valeur zéro (0, "", false, nil, ou une slice/map vide). Cela n'affecte que l'encodage, pas le décodage.