UTILS.
100% no navegador
🐹

JSON para Struct Go

Converta uma amostra JSON em structs Go tipados com tags json. Infere int64, float64, bool, structs aninhados e slices no seu navegador.

saída

Sobre esta ferramenta

Cole uma amostra JSON e esta ferramenta gera structs Go prontos para uso, com tags `json:"field"` para cada chave. Tudo funciona localmente no seu navegador, então seu JSON nunca é enviado a lugar algum.

O gerador chama JSON.parse e percorre o resultado recursivamente: strings viram string, booleanos viram bool, números inteiros viram int64 e números com decimal viram float64, null vira interface{}, arrays viram um slice do tipo do primeiro elemento ([]interface{} quando vazio), e cada objeto vira seu próprio struct aninhado nomeado. Os nomes de campo são convertidos para PascalCase exportado (com iniciais comuns como ID e URL em maiúsculas) enquanto a chave original é preservada na tag json.

Use a ferramenta para inicializar modelos Go a partir de uma resposta de API ou arquivo de configuração, e depois ajuste os tipos manualmente onde necessário. Como o JSON não tem um tipo inteiro separado, um valor como 1.0 é lido como inteiro; adicione um decimal (1.5) se quiser float64.

Perguntas frequentes

Como os números são tipados?
Um valor analisado sem parte fracionária vira int64; um valor com decimal vira float64. O JSON não distingue 1 de 1.0, então ambos são lidos como int64.
O que acontece com objetos e arrays aninhados?
Cada objeto vira um struct nomeado separado; arrays viram um slice do tipo do primeiro elemento, ou []interface{} se o array estiver vazio ou o elemento for null.
Os nomes de campo são Go válidos?
As chaves são convertidas para PascalCase exportado e a chave original é mantida numa tag json, então o JSON faz round-trip corretamente mesmo para nomes como user_id ou first-name.
Meu JSON é enviado a um servidor?
Não. A análise e a geração de código acontecem inteiramente no seu navegador; nada é enviado ou armazenado.

Mais ferramentas