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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Convert JSON into a PHP array literal. Choose short [] or array() syntax, indentation, and an optional variable assignment, then copy the result. 100% in your browser.
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.
0 comments
No comments yet. Be the first to share your thoughts!