O que esta ferramenta faz
As chaves de cada objeto, em qualquer profundidade, em ordem alfabética:
{ "servidor": { "porta": 8080, "host": "localhost" }, "debug": true }
{
"debug": true,
"servidor": {
"host": "localhost",
"porta": 8080
}
}
Os arrays mantêm a ordem
Um objeto JSON é um conjunto não ordenado de pares nome/valor — diz a especificação, e nenhum analisador promete preservar a ordem que você escreveu. Um array é uma sequência, e a ordem dele é um valor.
["migrar", "popular", "iniciar"]
Ordenar isso transformaria um procedimento numa lista de palavras. Por isso os arrays ficam exatamente como estão, em todos os níveis.
A ordem é a dos pontos de código
Z vem antes de a, e a antes de é. É a ordem de pontos de código Unicode, não a ordem alfabética de um idioma específico.
É a única escolha que dá a mesma saída em todas as máquinas. Uma ordenação sensível à localidade põe ä ao lado de a em alemão e depois de z em sueco: o mesmo arquivo voltaria diferente conforme quem rodou a ferramenta — o que arruína o uso principal de ordenar, que é comparar dois arquivos que divergiram.
Ordenar não é canonicalizar
Um documento ordenado é mais fácil de comparar. Não é uma forma canônica que se possa hashear.
A RFC 8785, o JSON Canonicalization Scheme, fixa também como os números são escritos e como as strings são escapadas. Esta ferramenta não toca em nenhum dos dois de propósito: 1.0 continua 1.0, e \u00e9 continua \u00e9. Dois documentos que significam exatamente a mesma coisa podem, portanto, ordenar para dois textos diferentes.
Se você precisa de uma impressão digital estável de um valor JSON, use uma implementação de JCS. Se precisa ver o que mudou entre dois arquivos de configuração, ordene os dois e compare.
Privado por padrão
Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.