JSON para struct Go
Converta qualquer objeto JSON em um struct Go online e gratuitamente com nosso conversor de json para struct go. Infere automaticamente os tipos Go, gera structs separados para objetos aninhados, adiciona tags json e converte chaves snake_case em nomes de campo PascalCase, sem cadastro.
Paste your JSON object and click Convert. The tool infers Go types for every field and generates a complete struct with json tags - including nested structs for nested objects. All conversion runs locally in your browser.
- Nested JSON objects generate separate named structs automatically
- snake_case JSON keys are converted to PascalCase Go field names
- ISO 8601 datetime strings are inferred as
time.Time - Use "Pointer for null fields" to generate
*Tfor nullable fields - Use "json + db tags" for GORM or sqlx database field mapping
Por que usar nosso Conversor de JSON para struct Go?
- Conversão instantânea de JSON para struct Go: converta qualquer objeto JSON em um struct Go na hora no seu navegador. Nosso conversor de json para struct go infere todos os tipos Go (string, int64, float64, bool, []T, time.Time e structs aninhados) em milissegundos.
- Conversão segura de JSON para struct Go online: toda a conversão de JSON para struct Go acontece localmente no seu navegador. Seus dados JSON nunca saem do seu dispositivo, garantindo 100% de privacidade quando você usa nosso conversor de json para struct go online.
- JSON para struct Go online - sem instalação: use nosso conversor de json para struct go diretamente no seu navegador, sem downloads, extensões ou software. Converta JSON em structs Go de qualquer dispositivo, a qualquer momento.
- Tags de struct, tipos ponteiro e structs aninhados: nosso conversor de json para struct go gera tags json automaticamente, suporta tags db para GORM/sqlx, configura tipos ponteiro para campos anuláveis e gera structs separados e nomeados para objetos aninhados.
Casos de uso comuns do Conversor de JSON para struct Go
- Desenvolvimento de clientes de API REST: desenvolvedores Go usam nosso conversor de json para struct go para gerar structs a partir de exemplos de respostas de API REST. Cole o JSON da documentação da sua API e obtenha na hora structs Go tipados para json.Unmarshal e o código do seu cliente HTTP.
- Definição de modelos de banco de dados e GORM: desenvolvedores backend usam nosso conversor de json para struct go com «tags json + db» para criar modelos GORM e structs sqlx a partir de dados JSON. Gere structs Go prontos para banco de dados com tags de campo json e db em uma única etapa.
- Integração com APIs de terceiros: desenvolvedores que integram com Stripe, GitHub, Twilio ou outras APIs usam nosso conversor de json para struct go para gerar structs Go a partir dos exemplos da documentação. Obtenha structs precisamente tipados sem ler o código-fonte do SDK.
- Modelagem de dados em microsserviços: desenvolvedores de microsserviços em Go usam nosso conversor de json para struct go para modelar os payloads JSON trocados entre serviços. Converta esquemas de requisição e resposta em structs Go tipados para handlers gRPC, REST e filas de mensagens.
- Análise de arquivos de configuração: desenvolvedores Go usam nosso conversor de json para struct go para criar structs tipados a partir de arquivos de configuração JSON. Substitua o acesso sem tipo com map[string]interface por structs Go estruturados para melhor suporte da IDE e segurança em tempo de compilação.
- Migração de JavaScript para Go: equipes que migram de Node.js para Go usam nosso conversor de json para struct go para modelar rapidamente estruturas de dados JSON existentes como structs Go tipados. Converta contratos de API e modelos de dados em segundos.
O que é um struct Go?
Um struct Go é um tipo de dados composto que agrupa campos de tipos diferentes sob um único nome. Structs são a principal forma de modelar dados estruturados em Go: são usados para desserialização JSON, modelos de banco de dados, tipos de requisição/resposta de API e objetos de configuração. Nosso conversor de json para struct go analisa um objeto JSON e gera um struct Go completo com as anotações de tipo e tags json adequadas para marshaling e unmarshaling JSON sem atritos. Chaves JSON em snake_case são automaticamente convertidas em nomes de campo Go em PascalCase, seguindo as convenções de nomenclatura do Go.
Como funciona nosso Conversor de JSON para struct Go
- 1. Cole seu JSON: insira qualquer objeto ou array JSON válido. O conversor aceita qualquer estrutura JSON, incluindo objetos profundamente aninhados e arrays de objetos. Todo o processamento acontece localmente no seu navegador: seus dados JSON nunca saem do seu dispositivo.
- 2. Configure as opções: defina o nome do struct raiz, escolha o estilo de tags (apenas json, json + db ou nenhum) e configure o tratamento de tipos ponteiro para campos anuláveis. Strings de data e hora ISO 8601 são automaticamente inferidas como time.Time .
- 3. Copie ou baixe: veja o código Go gerado com a declaração package main e os imports necessários. Copie para a área de transferência ou baixe como models.go para usar imediatamente no seu projeto Go.
Mapeamento de tipos de JSON para Go
- string → string: strings JSON mapeiam para string em Go. Strings de data e hora ISO 8601 (por ex. "2024-01-15T10:30:00Z" ) são inferidas como time.Time .
- integer → int64, float → float64: inteiros JSON mapeiam para int64 ; floats JSON mapeiam para float64 .
- boolean → bool: valores JSON true / false mapeiam para bool em Go.
- null → interface ou *T: valores null de JSON mapeiam para interface por padrão. Com o modo «Ponteiro para campos null», campos null passam a *string (ou ao tipo ponteiro adequado).
- array → []T: arrays JSON mapeiam para slices Go. O tipo do elemento é inferido do primeiro item. Arrays vazios mapeiam para []interface .
- object → struct aninhado: objetos JSON aninhados geram structs Go separados e nomeados. O nome do struct é derivado da chave JSON em PascalCase.
Tags de struct Go explicadas
As tags de struct Go são literais de string anexados aos campos de um struct que fornecem metadados para bibliotecas de codificação/decodificação. A tag json controla como o campo é convertido de e para JSON; por exemplo, `json:"first_name,omitempty"` associa o campo Go FirstName à chave JSON «first_name» e omite o campo da saída JSON quando está vazio. A tag db é usada pelo GORM e pelo sqlx para mapeamento de colunas de banco de dados. Nosso conversor de json para struct go gera as tags json e db quando a opção «tags json + db» é selecionada, tornando os structs gerados imediatamente utilizáveis tanto com APIs JSON quanto com bancos de dados SQL.
Perguntas frequentes
Um conversor de JSON para struct Go analisa um objeto JSON e gera um struct Go com as anotações de tipo e tags json adequadas. Nosso conversor infere os tipos string, int64, float64, bool, []T, time.Time e structs aninhados, e converte automaticamente chaves snake_case em nomes de campo PascalCase.
Objetos JSON aninhados geram automaticamente structs Go separados e nomeados. O nome do struct é derivado da chave JSON em PascalCase. Por exemplo, uma propriedade «address» gera um struct Address.
As chaves JSON são convertidas em nomes de campo Go em PascalCase. Chaves snake_case (por ex. «first_name») passam para PascalCase (por ex. «FirstName»). Acrônimos comuns como «id», «url», «api» e «uuid» ficam em maiúsculas.
As tags de struct Go controlam o marshaling JSON. A tag json associa os nomes de campo Go às chaves JSON; por exemplo, `json:"first_name,omitempty"` associa FirstName a «first_name» no JSON.
Use tipos ponteiro quando um campo pode estar ausente ou ser null no JSON. Use «Ponteiro para campos null» para gerar *T apenas nos campos que são null no JSON de exemplo.
Strings JSON que correspondem ao formato de data e hora ISO 8601 são automaticamente inferidas como time.Time. O conversor adiciona o import "time" necessário ao código gerado.
Sim! Nosso conversor de json para struct go é 100% grátis, sem cadastro, sem conta e sem limites de uso. Converta JSON em structs Go para qualquer projeto diretamente no seu navegador.
Com certeza. Toda a conversão de JSON para struct Go acontece localmente no seu navegador usando JavaScript. Nenhum dado JSON é enviado a qualquer servidor, garantindo privacidade total.
Sim! Selecione «tags json + db» para gerar structs com tags de struct json e db. A tag db associa os nomes de campo Go aos nomes de coluna do banco de dados para GORM, sqlx e outras bibliotecas de banco de dados Go.