Gerador de exemplo JSON a partir de struct Go

Cole uma definição de struct Go com tags json para gerar automaticamente dados JSON de exemplo correspondentes. Suporta structs aninhados, slices, omitempty e json:"-", útil para mocks de API e exemplos do Postman.

Gerar JSON de amostra a partir de um struct de Go

Quando você monta um simulador de API ou registra um exemplo de resposta no Postman, acaba escrevendo à mão que JSON uma definição de struct vai de fato produzir. Esta ferramenta gera essa forma como JSON de amostra apenas a partir da definição de struct de Go que você colar, dando conta igualmente de structs aninhados, slices, `omitempty` e `json:"-"`.

**O que importa aqui é que o nome de um campo em Go não se torna necessariamente a chave do JSON.** A tag json tem precedência onde existe, e um campo marcado com `json:"-"` não aparece de modo algum. Como `omitempty` descarta um campo quando seu valor é o valor zero, **o próprio elenco de chaves pode diferir entre duas codificações do mesmo struct.** Ler a definição a olho convida, portanto, ao engano quanto à forma real do JSON, e desdobrá-la mecanicamente é justamente a tarefa desta ferramenta. Os valores produzidos são representativos de cada tipo, então substitua-os por dados com sentido antes de dar uso à saída.

Como se usa

  1. Cole as definições de struct Vários structs relacionados podem ser colados juntos sem problema.
  2. Indique o struct que lhe interessa **Especifique-o quando houver mais de um. Se deixar o campo vazio, o primeiro é usado.**
  3. Revise o JSON gerado Os structs aninhados e os slices saem inteiramente desdobrados.
  4. Ponha seus próprios valores Vêm preenchidos com valores representativos; substitua-os por dados adequados ao seu propósito.

Dicas para aproveitar melhor

  • Cole vários structs juntos e os tipos dos campos aninhados são resolvidos automaticamente, gerando objetos de exemplo de forma recursiva (se uma definição não for encontrada, um objeto vazio {} é usado e um aviso é exibido).
  • Especifique um nome de struct alvo para escolher qual se torna a raiz quando sua entrada contém mais de um (o primeiro struct que aparece é usado se deixado em branco).
  • Campos com a tag json:"-" são excluídos da saída JSON. Campos com omitempty ainda têm sua chave emitida normalmente, então remova-a manualmente se não a quiser.
  • Os valores gerados são apenas placeholders baseados no tipo (strings viram "example", números viram 1, e assim por diante). Substitua-os por dados reais se precisar de um exemplo real de resposta de API.
  • Esta ferramenta é o inverso da ferramenta irmã Conversor de JSON para struct Go. Ela permite transformar rapidamente um struct definido em um handler Go em um payload de exemplo para sua equipe de frontend ou QA.

Quando é útil

Ao montar um simulador de API

**Fixar o exemplo de resposta antes de escrever o servidor evita que o trabalho da interface tenha de esperar.**

Ao pôr exemplos na documentação

Fornece o material para colar num exemplo do Postman ou numa amostra do OpenAPI.

Ao confirmar o que uma tag faz

Você vê em forma concreta o que `omitempty` ou `json:"-"` de fato produzem.

Ao acertar uma forma com a equipe de interface

Mostrar JSON concreto deixa menos margem ao mal-entendido do que entregar uma definição de tipos.

Termos da codificação em Go

Tag json
A anotação anexada a um campo na forma `json:"user_id"`, que **nomeia a chave do lado JSON.** Sem ela, o nome do campo é usado tal como está.
Omitempty
Um ajuste que **deixa a chave inteiramente fora da saída quando o valor é o valor zero.** Vale notar que um 0 ou uma cadeia vazia são descartados junto com todo o resto.
Json:"-"
Um ajuste que mantém o campo fora do JSON. Serve para esconder campos de uso interno.
Valor zero
O valor inicial fixado para cada tipo: 0 para números, vazio para cadeias e nil para ponteiros e slices.
Slice
Uma sequência de comprimento variável, que em JSON vira um arranjo. **Um slice nil é escrito como `null`, o que o distingue de um arranjo vazio.**
Campo embutido
A notação que incorpora outro struct escrevendo apenas seu nome de tipo. Em JSON, seus campos aparecem no mesmo nível das chaves do pai.

Perguntas frequentes

Transformar manualmente um struct de resposta de API em Go para JSON é fácil de errar, especialmente com estruturas profundamente aninhadas, onde é fácil confundir um tipo ou uma tag json. Gerar automaticamente permite compartilhar um payload de exemplo preciso com a equipe de frontend ou QA muito mais rápido.

Se a definição do struct referenciado não for encontrada na entrada, o valor desse campo é exibido como um objeto vazio {} e uma mensagem de aviso aparece na tela. Cole também o struct de origem para obter um exemplo aninhado correto.

omitempty é apenas uma instrução do lado do Go para omitir valores zero durante a codificação, então a chave em si ainda é emitida normalmente no JSON de exemplo. Já um campo com json:"-" é totalmente excluído durante a codificação, portanto também fica de fora do JSON de exemplo.

Não, são apenas placeholders que satisfazem o tipo. Strings viram "example", inteiros viram 1, números de ponto flutuante viram 1.5 e booleanos viram true — valores fixos que você deve substituir conforme necessário para uso real.

Não: esta ferramenta é um analisador leve baseado em expressões regulares e análise linha a linha, não um analisador sintático Go real (AST). Ela não trata notações complexas como declarações de tipo em várias linhas ou structs anônimos aninhados, então trate-a como um gerador rápido de rascunhos.
Tool-kun

Curiosidade — o inverso da conversão de JSON para struct Go

Ao construir uma API web em Go, o formato da resposta costuma ser definido combinando um struct com tags json. Mas quando um desenvolvedor frontend ou engenheiro de QA quer verificar o comportamento da API, ler o código Go e converter mentalmente cada tipo de campo para JSON é uma tarefa tediosa e sujeita a erros.

Esta ferramenta realiza exatamente o inverso de sua irmã, o "Conversor de JSON para struct Go". Cole uma definição de struct Go e ela gera um payload JSON de exemplo com nomes de chave seguindo as tags json e valores placeholder correspondentes ao tipo de cada campo — pronto para usar direto em um exemplo do Postman ou em um mock de frontend.

Ainda assim, isso não é um compilador Go real — é um analisador leve construído sobre expressões regulares e análise linha a linha. Ele lida com definições de campo simples e structs aninhados colados juntos na mesma entrada, mas notações complexas como structs anônimos aninhados ou declarações de tipo em várias linhas podem não ser analisadas corretamente. Trate-a como um rascunho inicial e verifique o formato final com o código-fonte Go real.