Cole uma amostra JSON e copie as declarações de tipos Go correspondentes: structs, slices, campos escalares e tags json, com objetos aninhados inline ou como tipos nomeados.
Funciona localmente no seu navegadorCole uma amostra JSON e a ferramenta escreve as declarações de tipos Go correspondentes: structs, slices, campos escalares e as tags json que ligam cada campo à sua chave. Os nomes seguem as convenções de Go, objetos aninhados podem ficar inline ou virar tipos nomeados, e formatos idênticos são declarados uma única vez.
A conversão roda nesta aba do navegador. Nada é enviado e nenhuma requisição é feita, então a página continua funcionando offline e aceita dados que você não pode enviar a terceiros.
Números inteiros viram int quando cabem em 32 bits e int64 quando não cabem; decimais viram float64. Um número escrito como 1.0 permanece float64 mesmo parecendo inteiro, e um array que mistura inteiros e decimais vira []float64. Um array que mistura valores sem tipo em comum — número e string, objeto e número — cai para []interface{}.
Um array de objetos é mesclado em um único struct com a união das chaves, e a chave ausente em alguns itens recebe a tag omitempty. Um campo que aparece como objeto em um item e como escalar em outro vira interface{}. Strings em formato de timestamp RFC 3339 (2024-05-06T07:08:09Z) viram time.Time, o que exige adicionar o import time manualmente.
Os nomes dos campos são nomes exportados de Go: user-id vira UserID, e siglas comuns como ID, URL, API e HTTP mantêm as maiúsculas. A chave original é preservada na tag do struct, então o código gerado continua correspondendo ao payload colado.
Duas chaves que resultam no mesmo nome Go recebem um sufixo numérico (UserID e UserID2), e chaves formadas apenas por símbolos viram Field, Field2 e assim por diante. Aspas e barras invertidas dentro de uma chave são escapadas na tag para que o código continue válido.
São apenas declarações: sem cláusula package, sem imports, sem métodos e sem compilação aqui. Os tipos descrevem a amostra colada, não um schema — um campo que é null ou está ausente nessa amostra é tipado a partir do que você forneceu, então revise nulabilidade e largura numérica com um payload maior.
Documentos grandes são analisados no navegador e ficam limitados pela memória do seu dispositivo. Trate o resultado como um ponto de partida a revisar: renomeie os tipos, acrescente o que a amostra não mostrava e passe o arquivo pelo compilador depois de colar.