O que é um conversor de estrutura JSON para Go?
Um conversor de estrutura JSON para Go transforma um documento JSON nas declarações de tipo Go que o descrevem, para que você possa desmarcar os mesmos dados com codificação/json em vez de digitar a estrutura manualmente. Cada objeto JSON se torna uma estrutura Go, cada campo carrega uma tag json: "key" que o mapeia de volta ao nome original, e os tipos escalares são inferidos a partir dos valores: uma string JSON se torna string, um número inteiro se torna int, um decimal se torna float64, true e false se torna bool e null se torna interface {}. Cole uma carga útil e você obtém um bloco de tipo pronto para compilar de volta.
Ele existe porque escrever Go structs a partir de uma resposta API real é tedioso e fácil de obter sutilmente errado Nomes de campo têm que ser exportados e seguir convenções Go, então id torna-se ID e user_url torna-se UserURL, enquanto a tag json tem que preservar a chave original exata ou json.Unmarshal silenciosamente pula o campo Objetos aninhados precisam de sua própria estrutura, e uma matriz de objetos precisa de uma única estrutura que cubra cada chave que qualquer elemento tem Fazendo que através de uma resposta profundamente aninhada é onde os erros se infiltram O conversor aplica essas regras de forma consistente: objetos aninhados tornam-se estruturas inline, e matrizes de objetos são mescladas de modo que uma chave que aparece em apenas alguns elementos ainda está presente no tipo gerado.
Tudo é executado no seu navegador O JSON que você cola é analisado e analisado em JavaScript no seu próprio dispositivo, então nada é carregado, registrado ou armazenado, e a ferramenta continua trabalhando com a rede desconectada assim que a página for carregada Isso importa quando a carga útil é uma resposta API privada ou contém chaves e valores que você prefere não enviar para qualquer lugar Você pode renomear o tipo raiz, alternar inteiros para int64 quando precisar do tipo mais amplo e adicionar omitempty a cada tag quando quiser zero valores omitidos da saída codificada.
Um pequeno exemplo mostra o mapeamento go JSON to struct Colar {"order_id": 1042, "total": 19.5, "itens": [{"sku": "A1", "qty": 2}, {"sku": "B2", "qty": 1, "gift_note": "Happy birthday"}]}, digite order as the Root type e clique em Convert. Você obtém type Order struct com OrderID int, Total float64 e Items [] struct holding Sku, Qty int e GiftNote string GiftNote está lá mesmo que apenas o segundo item tenha, porque o conversor JSON to Go struct mescla cada elemento da matriz em um tipo.
Como usar o conversor JSON to Go struct?
Cole seu JSON
Cole um objeto ou matriz JSON na caixa de entrada Carregue a amostra primeiro se quiser ver a forma da estrutura gerada antes de usar seus próprios dados.
Nomeie o tipo de raiz
Insira um nome para a estrutura de nível superior, como Usuário ou ApiResponse Ele é limpo em um identificador Go exportado válido para que ele compile como escrito.
Defina opções de número inteiro e tag
Escolha int ou int64 para números inteiros e ative omitempty se desejar que os campos vazios sejam deixados de fora quando a estrutura for codificada de volta para JSON.
Converter e copiar
Clique em Converter para construir as definições de estrutura, depois copie-as para o seu arquivo Go JSON inválido é relatado com a mensagem exata do analisador para que você possa corrigi-lo.
Principais características
Corrigir tags json
Cada campo mantém uma tag json: "original_key" para que json.Unmarshal mapeie os dados de volta para o nome JSON exato, mesmo quando o campo Go é renomeado para seguir convenções.
Nomes de campos Go-Convention
As chaves são exportadas e os inicialismos comuns são maiúsculos, então id se torna ID, user_url se torna UserURL e html_body se torna HTMLBody, correspondendo às expectativas do golint.
Estruturas aninhadas embutidas
Objetos JSON aninhados tornam-se literais de estrutura em linha para qualquer profundidade, de modo que toda a forma vive em uma declaração que você pode colar como um único bloco.
Matrizes mescladas de objetos
Uma matriz de objetos produz uma estrutura cobrindo cada chave que qualquer elemento possui, e tipos de valores conflitantes para uma chave voltam à interface {} em vez de falhar.
Frequently Asked Questions
Related Tools
JSON Schema Generator
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
JSON Sorter
Sort the keys of a JSON object alphabetically, recursively through nested objects, with optional array sorting. Ascending or descending, minify or pretty. Client-side, no signup.
JSON to PHP Array
Convert JSON into a PHP array literal. Choose short [] or array() syntax, indentation, and an optional variable assignment, then copy the result. Runs client-side.
JSON to TypeScript
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!