Omnikit
DesenvolvimentoArquivosFinançasTodas as ferramentas
Ctrl K
Ferramentas para desenvolvedoresFerramentas de arquivosCalculadoras financeirasTodas as ferramentas
InícioFerramentas para desenvolvedoresConversor de JSON para structs Go
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Conversor de JSON para structs Go

desenvolvimento

Transforme uma amostra de JSON em structs Go com tags json, int ou float64, ponteiros e omitempty

Funciona no seu navegador. Nada do que você digita é enviado a lugar nenhum. Verificado em 16 de outubro de 2026.

Cole uma amostra de JSON e receba tipos struct do Go com tags json, prontos para json.Unmarshal. Números inteiros viram int, int64 acima de 2.147.483.647, e qualquer decimal deixa o campo como float64; um valor que às vezes é null vira ponteiro, e chaves ausentes em alguns objetos ganham omitempty.

Esta página foi traduzida automaticamente do original em inglês. Nenhuma pessoa revisou ainda a tradução; a versão em inglês é a que deve ser considerada. Ler o original em inglês

Em seguida:
  • JSON para TypeScript Gere interfaces ou tipos TypeScript a partir de uma amostra JSON
  • Formatador e validador de JSON Formate, valide, minifique e ordene JSON com a posição exata de cada erro

Como converter JSON em uma struct Go

1

Cole uma amostra de JSON, como a resposta de uma API, na caixa da esquerda.

2

Os tipos Go aparecem enquanto você digita: uma struct por objeto, com tags json e nomes no estilo Go como UserID.

3

Escolha Structs aninhadas inline ou omitempty em todo campo se quiser, e defina o nome do tipo raiz.

4

Clique em Copiar, ou em Baixar para salvar um arquivo .go, e acrescente sua linha package.

Sobre o Conversor de JSON para structs Go

O Go decodifica JSON em structs, e cada campo precisa do tipo certo e de uma tag json:"..." com o nome da chave. Este conversor escreve esses tipos a partir de uma amostra, então uma resposta de API de 200 linhas vira Go correto com uma só colagem.

Como os tipos são escolhidos.

Valor JSON Tipo Go
"text" string
true / false bool
42 (só números inteiros) int, ou int64 além de 32 bits
4.5 (algum decimal visto) float64
null, e também um tipo um ponteiro, como *string
só null, ou tipos misturados any
[ ... ] um slice, como []string
{ ... } uma struct nomeada, ou inline

Arrays de objetos. Todos os objetos de um array são unidos em uma struct, então um campo que aparece só em alguns continua lá, com ,omitempty na tag. Dois objetos com exatamente as mesmas chaves e tipos compartilham um nome de tipo.

Nomes. As chaves viram nomes Go exportados no estilo Go: user_id vira UserID, avatar_url vira AvatarURL, pela lista de siglas do golint. Uma chave que começa com dígito ganha um N na frente; duas chaves que gerariam o mesmo nome são numeradas. Uma chave com caracteres que uma tag não aceita, como vírgula, é marcada com um comentário, porque o encoding/json não a encontraria.

Opções. Structs aninhadas inline escreve um único tipo com structs anônimas dentro, o que serve para uma resposta pontual. omitempty em todo campo serve para structs que você também serializa. O tipo raiz se chama Root, a menos que você dê outro nome.

Cada resultado foi verificado lendo o Go de volta e decodificando a amostra com as regras do encoding/json. Nada do que você cola sai do navegador.

Perguntas frequentes

Como converto JSON em uma struct Go?

Cole uma amostra de JSON no conversor e a struct Go aparece ao lado, com uma tag json em cada campo e os objetos aninhados como tipos próprios. Copie para o seu pacote e decodifique com json.Unmarshal(data, &v), onde v é uma variável do tipo raiz.

Números JSON devem ser int ou float64 em Go?

Use int quando todo valor da amostra for inteiro e float64 quando algum valor tiver parte decimal, porque o encoding/json se recusa a colocar 4.5 em um int. O conversor escolhe por campo e usa int64 quando um número inteiro passa de 2.147.483.647.

Como valores null são tratados em structs Go?

Um campo visto tanto como null quanto com valor vira ponteiro, como *string, então nil significa null e uma string vazia continua diferente. Um campo que só apareceu como null vira any, já que a amostra não diz o que ele guardaria de outra forma.

O que o omitempty faz em uma tag json?

Com omitempty, o json.Marshal deixa o campo de fora quando ele tem o valor zero: string vazia, 0, false, nil ou slice vazio. O conversor o adiciona às chaves ausentes em alguns objetos de um array, e uma chave liga o recurso em todos os campos.

Por que o campo se chama UserID e não UserId?

O estilo Go, conferido pelo golint e pela maioria dos linters, escreve siglas em maiúsculas: ID, URL, HTTP, API, JSON e umas quarenta outras. A tag json mantém a chave original, user_id ou userId, então a decodificação continua batendo exatamente com a API.

Meu JSON é enviado?

Não. A conversão roda no seu navegador sem nenhuma requisição a um servidor, e o JSON não é guardado, então respostas de API com tokens ou dados pessoais ficam no seu dispositivo. Feche a aba e nada fica para trás.

Fontes

  • The Go Programming Language Specification, Struct typesField declarations, identifiers and tags
  • Go standard library, encoding/jsonTag syntax, omitempty, how numbers and null decode
  • golint, lint.go (commonInitialisms)The initialisms written in capitals: ID, URL, HTTP, API and others

Última verificação: 16 de outubro de 2026.

Taxas e regras mudam; confira a fonte antes de confiar em um valor.

Ainda com dúvidas? Pergunte sobre Conversor de JSON para structs Go e qualquer pessoa que saiba pode responder. Não é preciso ter conta.

Ferramentas relacionadas

Todas as ferramentas para desenvolvedores
Codificar e decodificar Base64Texto e arquivos para Base64 e de volta, com modo seguro para URL e prévia de imagensConversor de timestamp UnixTimestamps Unix em datas e datas em timestamps, em qualquer fuso horárioJSON para TypeScriptGere interfaces ou tipos TypeScript a partir de uma amostra JSONConverter CSV para JSONConverta CSV para JSON e JSON para CSV, com prévia em tabelaConverter YAML para JSONConverta YAML para JSON e JSON para YAML, com as âncoras resolvidasCodificador e decodificador de URLCodifique ou decodifique texto e URLs com codificação percentual e veja cada parte de um linkConversor de bases numéricasBinário, octal, decimal, hexadecimal e qualquer base até 36, exato em qualquer tamanho, com complemento de doisColor ConverterHEX, RGB, HSL, HWB, OKLCH and CMYK in both directions, with a contrast check
Esta ferramenta foi útil?
Omnikit

Pequenas tarefas, feitas no seu navegador. Grátis, rápido e privado. Os arquivos nunca são enviados.

Arquivos

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Desenvolvimento

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Finanças

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuiasPerguntasSobreComo verificamosBiblioteca de leis (beta)PrivacidadeTermosDivulgaçãoContatoMore: Exam practice (UGC NET Paper 1)Funciona no seu navegador. Nada é enviado. © 2026 Omnikit (theomnikit.com)