Entrada JSON

Saída Go

O que é JSON para Go?

Você acabou de chamar uma API REST no Postman, a resposta é JSON, e você precisa fazer unmarshal no Go — mas escrever o struct na mão para uma resposta profundamente aninhada é realmente chato. JSON e o pacote encoding/json do Go funcionam muito bem juntos, mas Go exige definições de struct explícitas para cada objeto aninhado. Esquecer um campo ou errar um tipo faz o unmarshal retornar valores zero silenciosamente. Esta ferramenta gera a árvore completa de structs a partir do seu JSON para você colar diretamente no projeto.

Esta ferramenta gera structs Go a partir do seu JSON. Defina o nome do struct e do pacote no painel de configuração. Ative JSON Tags para json:"field_name" para que os campos do struct sejam mapeados corretamente para chaves camelCase ou snake_case. Ative Ponteiros para campos opcionais ou nullable para distinguir entre valor zero e ausente. A saída está pronta para colar no seu projeto e usar com json.Unmarshal().

A conversão é executada inteiramente no seu navegador. Seu JSON nunca é enviado a um servidor. Você pode confirmar abrindo a aba de rede do seu navegador.

Como usar esta ferramenta

1

Colar ou enviar JSON

Copie seu JSON e cole no editor esquerdo. Você também pode clicar em Enviar para carregar um arquivo .json ou .txt. Use o botão Amostra para dados de exemplo. No painel de configuração, defina o nome do struct (ex: User) e do pacote (ex: models). Ative JSON Tags para tags de struct json:"key". Ative Ponteiros para campos opcionais ou nullable.

2

Verificar os structs gerados

O painel direito exibe os structs Go gerados. Objetos aninhados tornam-se structs aninhados ou separados. Arrays tornam-se []Type. Tags JSON mapeiam campos do struct para chaves JSON. Use json.Unmarshal(data, &v) para fazer parse do seu JSON no struct. Se seu JSON tiver sintaxe inválida, corrija primeiro com o Formatador JSON ou o Validador JSON.

3

Copiar ou baixar

Use Copiar para colocar o resultado na área de transferência, ou Baixar para salvar como arquivo .go. Cole no seu projeto Go. Você pode precisar adicionar imports ou ajustar nomes de pacote.

Exemplos de JSON para Go

Aqui está um exemplo de geração de structs Go a partir de um objeto JSON.

Exemplo: Registro de assinante

Entrada JSON:

Entrada

Saída Go gerada:

Saída

Quando JSON para Go ajuda

A maioria dos desenvolvedores precisa disso ao integrar com APIs. Você envia uma requisição via Postman ou curl, e a resposta vem como JSON. Colar aqui fornece structs tipados para usar com encoding/json. Para extrair valores específicos de respostas grandes, jq funciona bem na linha de comando.

Arquivos de configuração são outro caso comum. Um config.json ou settings.json com objetos aninhados frequentemente precisa de um struct Go para acesso type-safe. Para mesclar dois arquivos JSON primeiro, existe a ferramenta Mesclar JSON.

Exportações de banco de dados de MongoDB, Firestore ou CouchDB são tipicamente grandes blobs JSON. Processá-los aqui ajuda a entender a estrutura do documento e gerar structs Go para scripts de importação ou consultas.

Perguntas frequentes

Como gerar structs Go automaticamente a partir de JSON?

Cole seu JSON nesta ferramenta e ela gera structs Go na hora. Ative JSON Tags para que os nomes de campos sejam mapeados corretamente para as chaves JSON. Copie o resultado para seu projeto Go — pronto para usar com json.Unmarshal().

Por que structs Go precisam de JSON tags?

Os nomes dos campos devem ser exportados (maiúsculos) para JSON. JSON costuma usar camelCase ou snake_case. A tag json:"fieldName" diz ao encoding/json qual chave JSON corresponde a qual campo. Sem tags, json.Unmarshal faz matching sem diferenciação de maiúsculas, que pode silenciosamente perder campos.

Meus dados são enviados para algum lugar?

Não. Tudo roda no seu navegador — seu JSON nunca sai da sua máquina. Você pode verificar na aba de rede do navegador. Seguro para dados de produção.

E o omitempty?

Adicione omitempty à tag JSON para campos que não quer na saída quando estiverem vazios: json:"name,omitempty". O gerador não adiciona por padrão pois depende do caso de uso — edite a saída depois de gerar.

Quando usar ponteiros nos campos do struct?

Use *Type para campos opcionais ou nullable. Com ponteiro, um campo JSON ausente resulta em nil, que você pode verificar. Sem ponteiros, um campo ausente dá o valor zero e você não consegue saber se estava ausente ou apenas vazio.

Ferramentas relacionadas

Para manipulação de JSON em Go, consulte encoding/json. Para JSON, consulte a especificação JSON e RFC 8259. Para visão geral, consulte MDN JSON. Para testes de API, consulte Postman. Para tags de struct Go, consulte a especificação Go. Veja também jq para processamento JSON.