OpenReplay Logo
12k
12k

Conversor de JSON para Go

Converta qualquer amostra JSON em structs Go tipados com tags json — processado localmente no seu navegador, nada é enviado.

Processado localmente

Sobre esta ferramenta

Os structs Go são a forma idiomática de modelar JSON em Go: cada campo exportado carrega uma tag de struct `json:"..."` que o pacote padrão `encoding/json` usa para serializar e desserializar dados. Este conversor analisa uma amostra JSON, infere um tipo Go para cada valor — `int` para números inteiros, `float64` para decimais, `string`, `bool`, `interface{}` para null ou desconhecido, e `[]T` para arrays — e emite nomes de campos exportados em PascalCase mantendo a chave original na tag. Arrays de objetos são mesclados em uma única forma para que o struct gerado inclua cada chave vista entre os elementos.

Use-o para gerar os tipos de requisição e resposta de uma API HTTP, modelar um arquivo de configuração ou payload de webhook, ou transformar um documento de exemplo de um armazenamento NoSQL em structs tipados que você pode colar diretamente no seu pacote. Nomeie o struct raiz, ative `,omitempty` nas tags, e escolha entre tipos nomeados separados para objetos aninhados ou structs anônimos embutidos — útil para modelos rápidos e pontuais versus tipos compartilhados reutilizáveis.

Tudo é executado no lado do cliente, no seu navegador — seu JSON é analisado localmente e nunca enviado a um servidor.

Perguntas frequentes

Como os tipos JSON são mapeados para os tipos Go?

Números inteiros viram `int`, decimais viram `float64`, strings viram `string`, booleanos viram `bool`, e `null` (ou qualquer coisa desconhecida) vira `interface{}`. Arrays viram uma slice Go `[]T` do tipo do elemento, e objetos aninhados viram structs nomeados (ou structs anônimos embutidos, se você ativar essa opção).

Por que meus nomes de campos como user_id são transformados em UserID?

Go exporta os campos que começam com uma letra maiúscula, então as chaves são convertidas para PascalCase. Siglas comuns — ID, URL, API, HTTP — são mantidas inteiramente em maiúsculas para seguir as convenções do golint, de modo que `user_id` vira `UserID` e `api_url` vira `APIURL`. A chave original é preservada na tag de struct json.

O que faz a opção omitempty?

Adicionar `,omitempty` a uma tag de struct diz ao `encoding/json` para deixar esse campo de fora do JSON serializado quando ele contiver seu valor zero (0, "", false, nil ou uma slice/map vazia). Isso afeta apenas a codificação, não a decodificação.