Générateur JSON vers Go

Entrée JSON

1

Go Généré

Configuration

Saisissez du JSON pour générer des structs Go

Structs avec noms de champs corrects et tags JSON

Comment convertir JSON en Go – guide étape par étape

Utilisez ce générateur JSON to Go pour créer des structures Go avec des balises JSON à partir d'exemples JSON pour les API et les services.

  1. Étape 1 – Collez un échantillon JSON

    • Collez un objet ou un tableau JSON représentatif dans l'éditeur de gauche.
    • Incluez des objets imbriqués, des tableaux et des champs nullables afin que les types soient correctement déduits.
    • Utilisez Import pour charger JSON à partir d'un fichier, d'une URL ou d'un exemple de données.
  2. Étape 2 – Choisissez les options de structure Go

    • Définissez une racine Struct Name (par exemple Root).
    • Décidez comment gérer les champs facultatifs (*string, omitempty ou types personnalisés).
    • Confirmez les balises JSON et les noms afin que les clés soient correctement mappées (par exemple json:"createdAt").
  3. Étape 3 – Vérifiez le code généré

    • Vérifiez les noms de champs, les types et la façon dont les tableaux/objets sont modélisés.
    • Ajustez les options telles que Root Type Name, la gestion des valeurs nulles et les frameworks si disponibles.
    • Si un champ est déduit de manière incorrecte, modifiez votre exemple JSON et régénérez-le.
  4. Étape 4 – Utiliser les structures dans Go

    • Collez les structures dans votre package et exécutez gofmt.
    • Démarrez avec encoding/json dans le type racine.
    • Ajoutez une validation (par exemple des champs obligatoires) à la limite de l'API.
  5. Étape 5 – Copier ou télécharger

    • Copiez la sortie dans votre projet ou téléchargez-la sous forme de fichier.
    • Exécutez votre formateur/linter pour qu'il corresponde à votre style de code.
    • Ajoutez des bibliothèques d'analyse/sérialisation JSON si votre langage l'exige.

Conseils rapides

  • Utilisez des pointeurs pour les champs nullables lorsque vous devez distinguer les champs manquants des champs vides.
  • Préférez time.Time uniquement lorsque vous contrôlez le format d'horodatage.
  • Gardez les structures DTO séparées des modèles de domaine internes si nécessaire.
Exemple de résultat (simplifié)
// Entrée JSON
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated Go structs (simplified)
type Metadata struct {
  Plan string `json:"plan"`
}

type Root struct {
  ID        int       `json:"id"`
  Name      string    `json:"name"`
  Email     *string   `json:"email"`
  Active    bool      `json:"active"`
  Roles     []string  `json:"roles"`
  Metadata  Metadata  `json:"metadata"`
  CreatedAt string    `json:"createdAt"`
  Score     float64   `json:"score"`
  Notes     any       `json:"notes"`
}

Outils JSON & Go associés

Explorez d'autres outils JSON et de schéma qui fonctionnent parfaitement avec ce générateur JSON to Go.

Questions fréquentes

Quelles fonctionnalités Go sont prises en charge ?

Le générateur crée des structs Go avec des noms de champs corrects, des tags JSON pour marshal/unmarshal, et des types Go adaptés, en respectant les conventions de nommage Go.

Comment les tags JSON sont‑ils gérés ?

Le générateur ajoute automatiquement des tags JSON aux champs. Vous pouvez aussi activer des tags YAML ou XML pour supporter plusieurs formats.

Puis‑je personnaliser le nom du package ?

Oui ! Vous pouvez définir n’importe quel nom de package. Par défaut, c’est « main », mais vous pouvez utiliser « models », « types », etc.

Comment les conventions de nommage Go sont‑elles appliquées ?

Le générateur convertit les noms de champs JSON en noms Go corrects (PascalCase pour les champs exportés) tout en conservant le nom original dans les tags JSON.