Sobre esta ferramenta
O conversor gera estruturas com nome e tipos slice para Go 1.18+. Os campos recebem identificadores exportáveis válidos e as etiquetas json preservam as chaves quando possível. As chaves complexas ou especiais exigem a verificação das restrições de encoding/json.
Como utilizar
- Introduza JSON; várias amostras de objetos ajudam a detetar campos ausentes.
- Defina o nome da estrutura raiz.
- Clique em «Converter» e verifique campos exportados, etiquetas json, ponteiros anuláveis e slices.
- Copie o código ou descarregue o ficheiro Go. Integre-o no pacote de destino e ajuste-o ao projeto.
Exemplos
- {"first_name":"Ana"}: gera o campo exportado FirstName e preserva json:"first_name".
- [{"id":1,"name":"Ana"},{"id":2}]: name é opcional e pode usar *string com omitempty.
- {"matrix":[[1,2],[3,4]]}: é inferido como [][]int64.
Regras de conversão de tipos
As cadeias usam string; os inteiros seguros, int64; os decimais e misturas numéricas, float64; os booleanos, bool; os arrays, []T. Os tipos conhecidos anuláveis ou opcionais usam os ponteiros adequados; os campos ausentes incluem omitempty. Tipos desconhecidos, apenas null ou misturas incompatíveis usam any. O destino é Go 1.18+. Os campos são exportados, os nomes das estruturas são estáveis e sem conflitos e as etiquetas são escapadas como cadeias Go válidas. encoding/json interpreta de forma especial vírgulas, hífenes e alguns caracteres de controlo. O código assinala as chaves que não podem ser preservadas automaticamente nos dois sentidos: uma sintaxe válida não garante o mapeamento de qualquer chave. Entrada e saída: até 1 MiB cada; 64 níveis, 100000 nós, 5000 campos combinados e 256 tipos. Inteiros não seguros, números não finitos e valores arredondados para zero por subfluxo originam um erro. Os restantes decimais dependem da precisão de vírgula flutuante do navegador.
Utilizações comuns
- Preparar tipos Go a partir de amostras de serviços.
- Verificar os ponteiros necessários para campos anuláveis ou opcionais.
- Gerar estruturas com nome e slices para JSON aninhado.
Privacidade
A inferência JSON e a geração Go decorrem no navegador, sem enviar dados para servidores ou serviços externos.
Se quiser guardar os resultados, copie-os ou descarregue-os antes de sair da página.
Perguntas frequentes
Porque começam os campos por maiúscula?
encoding/json exige normalmente campos exportados. Uma inicial maiúscula permite o acesso a partir de outros pacotes e da biblioteca padrão.
Para que serve uma etiqueta json?
Define a correspondência entre o campo da estrutura e a chave JSON, preservando as chaves habituais quando o campo muda de nome.
Como é tratado null?
Quando aparece juntamente com um tipo conhecido, pode ser usado um ponteiro. Se houver apenas null, faltam dados para inferir um tipo mais preciso e usa-se uma opção conservadora como any.
Porque é usado any?
O código destina-se a Go 1.18+. any é um alias de interface{} adequado quando a amostra não permite determinar o tipo.
Qualquer chave JSON pode ser convertida diretamente numa etiqueta?
Nem sempre. Embora a cadeia Go possa ser escapada, encoding/json interpreta conteúdos especiais como vírgulas e hífenes. Essas chaves precisam de mapeamento personalizado; consulte as notas do código.