JSON para Go
Converter JSON para structs POJO Go para desenvolvimento Go
Entrada JSON
Saída Go
O que é JSON para Go?
Go usa structs para dados estruturados. Ao fazer unmarshalling de JSON com encoding/json, você precisa de structs com campos e tipos correspondentes. A especificação JSON define objetos, arrays, strings, números e booleanos—mas Go precisa de definições de struct explícitas para cada objeto aninhado. Escrevê-las manualmente é tedioso e propenso a erros quando o JSON é grande ou complexo.
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
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.
Verificar os structs gerados
O painel direito exibe os structs Go gerados. Objetos aninhados tornam-se structs aninhados ou separados. Arrays tornam-se <code>[]Type</code>. Tags JSON mapeiam campos do struct para chaves JSON. Use <code>json.Unmarshal(data, &v)</code> 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.
Copiar ou baixar
Use <strong>Copiar</strong> para colocar o resultado na área de transferência, ou <strong>Baixar</strong> para salvar como arquivo <code>.go</code>. 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:
Saída Go gerada:
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 <code>config.json</code> ou <code>settings.json</code> 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
Por que JSON Tags?
Os nomes dos campos do struct Go devem ser exportados (maiúsculos) para JSON. JSON costuma usar camelCase ou snake_case. A tag json:"fieldName" mapeia o campo do struct para a chave JSON. Ative JSON Tags na configuração para que os structs gerados funcionem corretamente com json.Unmarshal e json.Marshal.
Ponteiros para campos opcionais?
Se um campo JSON pode ser null ou ausente, use *Type para distinguir entre valor zero (ex: string vazia) e ausente. Sem ponteiros você não consegue diferenciar. Ative Usar ponteiros na configuração para campos opcionais ou nullable.
Meus dados são enviados para algum lugar?
Não. A geração é executada inteiramente no seu navegador em JavaScript. Nenhum dado é enviado a um servidor. Você pode confirmar abrindo a aba de rede do seu navegador.
E o omitempty?
Adicione omitempty à tag JSON para campos que você não quer na saída quando estiverem vazios: json:"name,omitempty". Edite a saída se necessário. O gerador não adiciona omitempty por padrão porque depende do seu caso de uso.
Interface{} para JSON dinâmico?
Para estrutura desconhecida ou muito variável, use map[string]interface{} ou interface{}. Esta ferramenta gera structs tipados para formas conhecidas. Se sua estrutura JSON muda frequentemente, você pode preferir interface{}.
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.