Conversor de JSON para struct Go
Cole uma amostra do seu JSON e receba na hora a definição de tipo Go correspondente — a conversão roda ao vivo enquanto você digita, inteiramente no navegador. As chaves do objeto viram nomes de campo exportados em PascalCase para que o encoding/json consiga serializá-los, e cada campo carrega uma tag json:"…" com a chave original, de modo que uma ida e volta pela biblioteca padrão reproduz o JSON de partida. Inteiros são mapeados para int64, decimais para float64, e objetos aninhados viram structs anônimos inline que espelham a forma do payload. Como os tipos são inferidos de uma única amostra, trate a saída como um bom primeiro rascunho: um campo que por acaso vale 42 vira int64 mesmo que a API também possa devolver 41.5, null e arrays vazios saem como interface{} porque a amostra não revela tipo de elemento algum, e o tipo de um slice vem apenas do seu primeiro elemento. Revise o resultado, aperte os tipos que você conhece melhor e acrescente ,omitempty ou ponteiros para campos opcionais. Sua entrada nunca sai do dispositivo e fica no localStorage para sobreviver a um reload.
Como usar
- Cole ou digite uma amostra do seu JSON na caixa de entrada — a conversão é ao vivo, não há botão para apertar.
- Se quiser, nomeie o struct raiz (padrão AutoGenerated); o nome é normalizado para um identificador PascalCase exportado.
- Copie a definição gerada com o botão Copiar e cole no seu arquivo Go.
- Revise os tipos inferidos: alargue números que possam ser fracionários, substitua os interface{} e acrescente ,omitempty onde os campos forem opcionais.
Perguntas frequentes
- Como os números são tipados?
- Inteiros viram int64 e qualquer valor com parte fracionária vira float64. É inferência de uma única amostra — se um campo puder ser fracionário algum dia, troque você mesmo para float64; se precisar de precisão decimal exata, considere json.Number.
- O que acontece com null ou arrays vazios?
- null vira interface{} e arrays vazios viram []interface{}, porque a amostra não traz nenhuma informação de tipo. Substitua assim que souber o tipo real — um campo que pode ser null costuma ficar melhor como ponteiro em Go.
- Como os nomes de campo e as tags json são escolhidos?
- As chaves são divididas nos caracteres não alfanuméricos e unidas em PascalCase como identificadores exportados (user_id vira UserId), porque o encoding/json só enxerga campos exportados. A chave original é preservada literalmente na tag json, então a serialização reproduz exatamente as suas chaves.
- Objetos aninhados viram tipos nomeados separados?
- Não — eles saem como structs anônimos inline, o que mantém a saída em uma única declaração autocontida que você cola em qualquer lugar. Se uma forma se repetir em vários pontos, extraia-a manualmente para um tipo nomeado. Note também que o tipo de elemento de um array é inferido só do primeiro elemento, então arrays com tipos misturados passam despercebidos.
- Meu JSON é enviado ou armazenado em algum lugar?
- Ele nunca sai do navegador — o parse e a geração são JavaScript puramente do lado do cliente. Por conveniência, a entrada e o nome raiz ficam salvos no localStorage do navegador e sobrevivem a um reload; apague a entrada se colou algo sensível em uma máquina compartilhada.
Ferramentas relacionadas
Conversor de JSON para struct Rust (serde)
Transforme um objeto JSON em structs Rust com derives serde e campos tipados, no seu navegador.
Gerador Open Graph & Twitter Card
Preencha um formulário, receba um bloco `<meta>` pronto pra colar — Open Graph pra Facebook / LinkedIn / Slack e tags Twitter Card pra X / Discord.
Conversor de JSON para dataclass Python
Transforme um objeto JSON em definições @dataclass do Python com type hints, no seu navegador.
Conversor de JSON para data class Kotlin
Transforme um objeto JSON em data classes Kotlin com propriedades tipadas, no seu navegador.
Conversor de JSON para classe C#
Transforme um objeto JSON em classes C# com mapeamento de tipos em autopropriedades, no seu navegador.
Conversor de JSON para classe Java (POJO)
Transforme um objeto JSON em classes POJO Java com campos tipados, no seu navegador.