01 / Exemplo
Exemplo
{"z":"Bem-vindo","a":{"z":"Olá","a":true}}{
"a": {
"a": true,
"z": "Olá"
},
"z": "Bem-vindo"
}Formatação de código / MULTIVERTO
Ordene alfabeticamente as chaves dos objetos de forma recursiva, sem alterar a ordem dos arrays.
Aplique cada ferramenta de texto ao resultado anterior. Fluxos de trabalho com texto ↗
Somente o nome da sequência e a ordem das ferramentas são salvos neste navegador. Sua entrada e seus resultados nunca são salvos.
01 / Exemplo
{"z":"Bem-vindo","a":{"z":"Olá","a":true}}{
"a": {
"a": true,
"z": "Olá"
},
"z": "Bem-vindo"
}02 / Guia
Ordene recursivamente as chaves dos objetos em ordem alfabética sem alterar a ordem dos arrays. Analise o JSON, ordene os nomes das propriedades de cada objeto e indente o resultado.
Neste exemplo, a entrada «{"z":"Bem-vindo","a":{"z":"Olá","a":true}}» produz a saída «{ ⏎ "a": { ⏎ "a": true, ⏎ "z": "Olá" ⏎ }, ⏎ "z": "Bem-vindo" ⏎ }»; ⏎ representa uma quebra de linha real. Inspecione os delimitadores, nomes e tipos de valor alterados antes de usar esse resultado. Ao ordenar as chaves JSON, compare um pequeno registro com o analisador de destino antes de transformar um arquivo ou solicitação completo. Alfabetiza chaves de objetos recursivamente sem alterar a ordem dos arrays.
Esta operação analisa JSON em vez de classificar linhas de texto. Cada objeto é visitado recursivamente e seus nomes de membros são colocados em ordem lexicográfica JavaScript; elementos de array permanecem em suas posições originais porque a ordem do array geralmente tem significado. Os valores mantêm seu tipo JSON, incluindo true, false, null e números. O recuo muda para que a saída possa ser revisada, mas a ortografia numérica e espaços em branco insignificantes podem diferir da fonte. A ordem da chave do objeto JSON é frequentemente semanticamente irrelevante para aplicações, embora a ordem possa ser importante para diffs, snapshots e protocolos que assinam bytes exatos. Não use esta saída como um formato de assinatura canônico JSON. Nomes de membros duplicados na origem são resolvidos pelo analisador JSON antes da classificação, portanto, inspecione esses dados em um analisador dedicado se a retenção de todas as ocorrências for essencial. Compare registros de teste de API cujos membros de objeto chegaram em ordens diferentes, preservando a sequência de itens de array. Inteiros sem aspas fora do intervalo de inteiros seguros de ±9.007.199.254.740.991 são rejeitados durante o processamento de JSON; coloque um identificador exato entre aspas para preservar todos os dígitos como string.
Para classificação de chaves JSON, analise a saída novamente e compare seus dados com a entrada analisada, em vez de comparar os bytes originais. Verifique se os arrays mantiveram sua ordem e se cada objeto foi classificado, incluindo objetos aninhados dentro de arrays. Se o resultado for assinado ou submetido a hash, use a canonização exata exigida por esse protocolo em vez de assumir que chaves alfabéticas são suficientes. Aninhe um objeto dentro de um array com chaves deliberadamente invertidas; inspecione tanto o objeto externo quanto o interno, confirmando que as posições do array não foram movidas. A fonte e o resultado têm papéis diferentes, mesmo quando parecem semelhantes. O método acima define o subconjunto aceito em vez de cada extensão do formato nomeado. Para um sistema de recepção rigoroso, tente um pequeno caso conhecido antes de alterar muitos registros. Se a validação falhar, retorne à entrada original e ao primeiro erro relatado; editar apenas o resultado gerado pode ocultar a causa. Mantenha a fonte até que o aplicativo de recepção aceite a saída. A conversão é executada neste navegador; colar o resultado em um URL compartilhado, repositório ou solicitação é uma decisão de publicação separada.