JSON para Go Struct
Converta um JSON em struct Go com tags `json:` e tipos inferidos automaticamente. Detecta strings, ints, floats, bools, slices e structs aninhadas. Tudo no navegador.
Como funciona?
Cada chave do JSON vira um campo da struct em PascalCase (Go exige inicial maiúscula para serialização). A tag json:"..." preserva o nome original para que encoding/json faça o mapeamento correto.
Tipos são inferidos automaticamente: números inteiros viram int, decimais viram float64, arrays homogêneos viram []T, e arrays mistos ou nulos caem em interface{}. Tudo no navegador.
Do payload JSON à struct com tags
Chegou o JSON de uma API e agora você precisa da struct Go correspondente. Escrever à mão é chato e traiçoeiro: se a tag json: sair com um typo, o encoding/json não reclama de nada, só devolve o zero value do campo, e você passa a tarde procurando por que created_at está vazio. Cole o JSON, escolha o nome do tipo raiz e a struct sai pronta para colar no arquivo.
Cada chave vira um campo em PascalCase porque Go só serializa campos exportados, ou seja, com inicial maiúscula, e a tag json: guarda o nome original. Os tipos vêm por inferência do valor da amostra: inteiro vira int, decimal vira float64, null vira interface{}. Aí mora a pegadinha, JSON não separa inteiro de decimal, então um preço que veio como 10.0 é lido como int e quebra na primeira resposta com 10.5.
Em arrays, deixe um único elemento representativo antes de colar. Com dois ou mais objetos na mesma lista, o gerador cria uma struct para cada elemento (Post, Post2) e o campo cai para []interface{}. Chaves que batem com palavra reservada ou começam com dígito ganham underscore, virando _Type ou _2fa, e campo iniciado por underscore não é exportado, então renomeie antes de compilar. Tudo acontece no navegador.
Perguntas frequentes
Por que meu campo decimal virou int?
Ele gera ponteiros e omitempty?
O JSON colado vai para algum servidor?
Ferramentas Relacionadas
Conversor JSON ⇄ Query String
Converta um objeto JSON plano em query string (?a=1&b=2) e vice-versa. Suporta arrays no estilo a[]=1&a[]=2. Tudo no navegador.
JSON → Markdown Table
Converta um array de objetos JSON em tabela Markdown formatada, com cabeçalho e alinhamento. Cole o JSON e copie a tabela pronta para README, docs e GitHub.
JSON para TypeScript
Converta um JSON em interfaces TypeScript com tipos inferidos automaticamente. Detecta strings, números, booleanos, arrays, objetos aninhados e união de tipos. Tudo no navegador.