DT Dev Tools

Converter JSON para Go struct — Gerador de structs

Converta JSON em structs Go com tags json, omitempty, tipos ponteiro para campos opcionais e auxiliares de unmarshal. Grátis, rápido e privado no navegador.

🔒 Executa completamente no seu navegador — nada é enviado

Publicidade

Gere structs Go a partir de JSON

Escrever structs Go à mão para uma resposta de API grande é lento e propenso a erros. Este conversor de JSON para Go faz isso na hora: cole um exemplo de JSON e ele gera tipos struct exportados, com nomes de campo corretamente capitalizados e tags json que mapeiam cada campo de volta para a chave original. Objetos aninhados viram structs nomeadas separadas, arrays viram slices, inteiros e números de ponto flutuante são diferenciados como int64 e float64, e timestamps ISO 8601 são reconhecidos como time.Time. A saída fica pronta para encoding/json sem mais edições.

A ferramenta é movida pelo quicktype, que examina cada elemento de cada array antes de escolher um tipo. Se um item da lista tiver um campo que os outros não têm, esse campo vira um ponteiro, de modo que o valor zero e o valor ausente continuem distinguíveis — um detalhe que conversores de passagem única costumam errar.

Opções que importam em Go

Defina o nome do package para que o arquivo compile onde você o colocar. Ative omitempty quando também serializar essas structs de volta para JSON e quiser que campos opcionais ausentes continuem ausentes. Por padrão, o gerador adiciona pequenas funções auxiliares Unmarshal… e Marshal em torno do tipo raiz; marque Structs only se preferir chamar json.Unmarshal você mesmo e precisar apenas dos tipos. Renomeie a struct raiz de Root para o nome de domínio desejado, por exemplo Repository ou WebhookEvent.

Como obter o melhor resultado

Forneça ao conversor um exemplo representativo: um array com vários elementos, campos opcionais preenchidos e objetos aninhados com conteúdo em vez de vazios. Arrays vazios e valores null não dão nada à inferência e recorrem a interface{}. Depois de colar o código, execute gofmt, revise os tipos numéricos cujo exemplo talvez não mostre o intervalo completo e troque strings genéricas por tipos próprios quando sua API documentar valores fixos. Como todo o processamento acontece no seu navegador, dados internos ou de clientes nunca saem da sua máquina.

Como usar

  1. Cole o JSONCole uma resposta de API ou qualquer documento JSON, ou carregue o exemplo.
  2. Escolha as opçõesDefina o nome da struct raiz e o package e decida sobre omitempty e auxiliares.
  3. Copie as structsCopie o código Go ou baixe um arquivo .go e execute o gofmt como de costume.

Perguntas frequentes

Ele adiciona tags json de struct?
Sim. Cada campo recebe uma tag `json:"key"` que preserva a chave JSON original, e você pode adicionar ,omitempty aos campos opcionais com uma única caixa de seleção.
Como campos opcionais e nulos são tratados?
Campos ausentes ou nulos em alguns exemplos viram tipos ponteiro, como *string, para que você diferencie um valor ausente de um valor zero.
O que fazem as funções auxiliares?
Por padrão, a saída inclui os auxiliares UnmarshalRoot e Marshal. Marque Structs only para obter apenas as declarações de tipo.
Meu JSON é enviado a um servidor?
Não. A conversão roda no seu navegador, com o quicktype compilado para JavaScript; nada é enviado.
Publicidade