# JSON para Go Struct

Converte dados JSON em definições de struct Go com tags json, campos PascalCase exportados e inferência de tipos aninhados

> Página canônica: https://elysiatools.com/pt/tools/json-to-go

- **Categoria:** Development

- **Palavras-chave:** json, go, golang, struct, converter, backend

## Visão geral

O conversor de JSON para Go Struct permite transformar rapidamente objetos JSON em definições de estruturas Go (structs) prontas para uso. A ferramenta gera campos exportados em formato PascalCase, infere tipos de dados aninhados e adiciona automaticamente as tags JSON necessárias, incluindo a opção de omitir campos vazios.

## Entradas

- **Entrada JSON** (textarea): { "name": "Alice", "age": 30, "roles": \["admin", "user"\], "address": { "city": "Shanghai", "zip": "200000" } }
- **Nome do tipo raiz** (text): Root
- **Omitir campos vazios** (checkbox)

## Quando usar

- Ao integrar APIs externas que retornam respostas em formato JSON no desenvolvimento de aplicações em Go.
- Durante a modelagem de dados e criação de structs para payloads de requisições HTTP em servidores Golang.
- Ao refatorar código legado onde é necessário mapear arquivos de configuração JSON para estruturas de dados nativas do Go.

## Como funciona

- Insira ou cole o código JSON que deseja converter no campo de entrada de texto.
- Defina o nome da estrutura raiz (por padrão, 'Root') e escolha se deseja omitir campos vazios nas tags JSON.
- O conversor analisa a estrutura do JSON, infere os tipos de dados e gera o código Go correspondente com campos em PascalCase.

## Casos de uso

- Criação rápida de modelos de dados para consumo de APIs REST em microsserviços Go.
- Geração de structs para leitura de arquivos de configuração locais em formato JSON.
- Mapeamento de payloads de webhooks para validação e processamento de dados em servidores Golang.

## Perguntas frequentes

### Como a ferramenta lida com objetos JSON aninhados?

Ela cria automaticamente structs adicionais para cada objeto aninhado e os referencia na struct principal.

### O que faz a opção de omitir campos vazios?

Ela adiciona a tag `omitempty` às propriedades do struct, evitando que campos nulos ou vazios sejam serializados no JSON final.

### Posso alterar o nome da struct principal gerada?

Sim, basta preencher o campo 'Nome do tipo raiz' com o nome desejado antes de realizar a conversão.

### Como os nomes das propriedades do JSON são convertidos para Go?

Os nomes são convertidos para o padrão PascalCase para garantir que os campos sejam exportados e fiquem visíveis fora do pacote Go.

### A ferramenta suporta arrays e listas no JSON?

Sim, arrays JSON são convertidos em slices (fatias) correspondentes no Go, mantendo a tipagem correta dos elementos.

## Ferramentas relacionadas

- [Gerador de Data URI](https://elysiatools.com/pt/tools/data-uri-generator): Converte arquivos em Data URIs (Base64 ou porcentagem-codificada) para incorporar imagens, fontes e recursos diretamente em HTML, CSS ou Markdown
- [Conversor de JSON Schema para Zod](https://elysiatools.com/pt/tools/json-schema-to-zod-schema-converter): Converte definicoes JSON/YAML de JSON Schema em codigo Zod pronto para uso em projetos TypeScript, com objetos aninhados, arrays, enums e regras comuns de validacao
- [JSON para C# Class](https://elysiatools.com/pt/tools/json-to-csharp): Converte dados JSON em classes C# com propriedades PascalCase, atributos JsonPropertyName e inferência de tipos aninhados
- [JSON para Java Class](https://elysiatools.com/pt/tools/json-to-java): Converte dados JSON em classes Java com anotações @JsonProperty do Jackson, campos privados, getters e setters
- [JSON para Kotlin Data Class](https://elysiatools.com/pt/tools/json-to-kotlin): Converte dados JSON em data classes Kotlin com anotações @SerializedName, tratamento de nulos e inferência de tipos aninhados
- [JSON para Rust Struct](https://elysiatools.com/pt/tools/json-to-rust): Converte dados JSON em structs Rust com derives serde Serialize/Deserialize, campos snake_case e atributos serde rename
- [JSON para TypeScript](https://elysiatools.com/pt/tools/json-to-typescript): Converte dados JSON em interfaces TypeScript ou aliases de tipo, com tipos união, campos opcionais e inferência de objetos aninhados
- [Conversor de logs para diagramas de sequencia](https://elysiatools.com/pt/tools/log-sequence-diagram-converter): Converte logs estruturados de servicos em diagramas Mermaid ou PlantUML com anotacoes de latencia e erro

## Exemplos

- [Amostras JSON de Terraform Plan](https://elysiatools.com/pt/samples/terraform-plan-json-samples): Arquivos Terraform plan JSON para visualizacao de dependencias e revisao de mudancas, no estilo terraform show -json
- [Exemplos JSON de Chat](https://elysiatools.com/pt/samples/chat-transcript-json): Exemplos JSON para transcricoes de chat multirrole
- [Exemplos de JSON](https://elysiatools.com/pt/samples/json): Exemplos de formato JSON (JavaScript Object Notation) de estruturas simples a complexas
- [Exemplos JSON de Texto Rico](https://elysiatools.com/pt/samples/rich-media-json): Exemplos JSON para editores de texto rico (TipTap, Quill, Slate)

## Conteúdo relacionado

- [Geradores de JSON para codigo tipado](https://elysiatools.com/pt/hubs/json-to-typed-code-generators): Gere modelos tipados a partir de JSON ou schemas para TypeScript, Go, Rust, Kotlin, Java, C# e validacao Zod.
