Générateur d'exemple JSON depuis un struct Go

Collez une définition de struct Go avec des tags json pour générer automatiquement des données JSON d'exemple correspondantes. Prend en charge les structs imbriqués, les slices, omitempty et json:"-", pratique pour les mocks d'API et les exemples Postman.

Astuces d'utilisation

  • Collez plusieurs structs ensemble : les types des champs imbriqués sont résolus automatiquement et des objets d'exemple sont générés de manière récursive (si une définition est introuvable, un objet vide {} est utilisé et un avertissement s'affiche).
  • Indiquez un nom de struct cible pour choisir lequel devient la racine lorsque votre entrée en contient plusieurs (le premier struct rencontré est utilisé si le champ est laissé vide).
  • Les champs marqués json:"-" sont exclus de la sortie JSON. Les champs avec omitempty voient tout de même leur clé émise normalement ; supprimez-la manuellement si vous n'en avez pas besoin.
  • Les valeurs générées ne sont que des marqueurs de type (les chaînes deviennent "example", les nombres deviennent 1, etc.). Remplacez-les par des données réelles si vous avez besoin d'un véritable exemple de réponse d'API.
  • Cet outil est l'inverse de son outil jumeau, le convertisseur JSON vers struct Go. Il permet de transformer rapidement un struct défini dans un handler Go en une charge utile d'exemple pour votre équipe frontend ou QA.

Questions fréquentes

Convertir manuellement un struct de réponse d'API Go en JSON est source d'erreurs, surtout avec des structures profondément imbriquées où l'on confond facilement un type ou un tag json. La génération automatique permet de partager bien plus rapidement une charge utile d'exemple précise avec l'équipe frontend ou QA.

Si la définition du struct référencé est introuvable dans l'entrée, la valeur de ce champ est affichée sous forme d'objet vide {} et un message d'avertissement apparaît à l'écran. Collez également le struct source pour obtenir un exemple imbriqué correct.

omitempty n'est qu'une instruction côté Go pour omettre les valeurs nulles lors de l'encodage ; la clé elle-même continue donc d'apparaître normalement dans le JSON d'exemple. En revanche, un champ marqué json:"-" est totalement exclu lors de l'encodage et n'apparaît donc pas non plus dans le JSON d'exemple.

Non, ce ne sont que des valeurs de substitution qui satisfont le type. Les chaînes deviennent "example", les entiers 1, les nombres à virgule flottante 1.5 et les booléens true — des valeurs fixes que vous devez remplacer selon votre cas réel.

Non : cet outil est un analyseur léger basé sur des expressions régulières et une analyse ligne par ligne, pas un véritable analyseur syntaxique Go (AST). Il ne gère pas les notations complexes comme les déclarations de type sur plusieurs lignes ou les structs anonymes imbriqués ; considérez-le donc comme un générateur rapide de brouillon.
ツールくん

Anecdote — l'inverse de la conversion JSON vers struct Go

Lors de la construction d'une API web en Go, la forme de la réponse est généralement définie en combinant un struct avec des tags json. Mais lorsqu'un développeur frontend ou un ingénieur QA veut vérifier le comportement de l'API, lire le code Go et convertir mentalement chaque type de champ en JSON est une tâche fastidieuse et source d'erreurs.

Cet outil effectue exactement l'opération inverse de son outil jumeau, le « Convertisseur JSON vers struct Go ». Collez une définition de struct Go, et il génère une charge utile JSON d'exemple avec des noms de clés suivant les tags json et des valeurs de substitution correspondant au type de chaque champ, prête à être utilisée directement dans un exemple Postman ou un mock frontend.

Cela dit, il ne s'agit pas d'un véritable compilateur Go, mais d'un analyseur léger construit sur des expressions régulières et une analyse ligne par ligne. Il gère les définitions de champs simples ainsi que les structs imbriqués collés ensemble dans la même entrée, mais des notations complexes comme les structs anonymes imbriqués ou les déclarations de type sur plusieurs lignes peuvent ne pas être analysées correctement. Considérez-le comme un premier brouillon et vérifiez la forme finale avec le code source Go réel.

→ Voir toutes les anecdotes