Ordenador de Chaves JSON
Ordena alfabeticamente as chaves de cada objeto em um documento JSON, recursivamente — deixa os diffs mais limpos e as configurações mais fáceis de revisar.
918 visualizações
Como Funciona
Cole o JSON e as chaves de cada objeto voltam ordenadas alfabeticamente. A parte importante é que essa ordenação é recursiva: a ferramenta não apenas reordena as chaves do objeto de nível mais alto e para por aí — ela entra em cada objeto aninhado, em cada profundidade, e alfabetiza cada um de forma independente. Ordenar apenas o nível mais externo deixaria a estrutura interna de um documento intocada, o que anula o propósito para qualquer coisa mais complexa do que um objeto plano; JSON do mundo real (respostas de API, arquivos de configuração) quase sempre tem vários níveis de aninhamento.
Por exemplo, dado {"user":{"zip":"1","name":"A"},"active":true}, a ferramenta não apenas move active para antes de user no topo — ela também alcança o interior do objeto user e troca name para antes de zip, produzindo {"active":true,"user":{"name":"A","zip":"1"}}. Arrays ficam intocados: a ordem de seus elementos é preservada exatamente, já que a ordem de um array é semanticamente significativa (arrays são ordenados por definição), enquanto a ordem das chaves de um objeto, segundo a especificação JSON, não é.
Bom Saber
O principal caso de uso é tornar diffs e comparações de controle de versão significativos. Dois documentos JSON que contêm dados idênticos, mas foram serializados com chaves em ordens diferentes, produzirão um diff de texto enorme e cheio de ruído se comparados diretamente — toda linha parece diferente mesmo que nada tenha realmente mudado. Passar ambos por este ordenador primeiro elimina esse ruído: com as chaves na mesma ordem alfabética, um diff em texto simples mostra apenas mudanças de conteúdo genuínas, não reordenações incidentais. É igualmente útil para editar arquivos de configuração manualmente ou tornar uma resposta de API desconhecida mais fácil de examinar.
Perguntas Frequentes
Isso muda os dados, ou só a ordem?
Só a ordem das chaves muda — valores, aninhamento e conteúdo dos arrays permanecem intactos. Objetos JSON não têm ordem definida pela especificação, então essa é sempre uma transformação segura e que não quebra nada.
A ordenação se aplica a objetos aninhados, ou só ao nível superior?
É totalmente recursiva — cada objeto em cada profundidade de aninhamento tem suas próprias chaves alfabetizadas de forma independente, não apenas o mais externo. Ordenar somente o nível superior deixaria os objetos internos em sua ordem original, possivelmente inconsistente.
E se meu JSON for inválido?
Você recebe um erro de análise claro em vez de uma falha silenciosa — corrija o problema de sintaxe indicado e tente novamente.
Isso também ordena arrays?
Não — a ordem dos elementos do array é preservada exatamente, já que arrays são ordenados por definição e reordená-los mudaria o significado. Apenas as chaves de objetos são alfabetizadas.
Por que eu ordenaria as chaves do JSON antes de comparar dois arquivos?
Ferramentas de diff em texto simples comparam linha por linha, então dois arquivos JSON com dados idênticos, mas com chaves em ordens diferentes, parecem quase completamente diferentes em um diff, mesmo que nada de significativo tenha mudado. Ordenar as chaves dos dois arquivos da mesma forma remove esse ruído, deixando um diff que reflete apenas mudanças reais de conteúdo.
Ferramentas Semelhantes
Reportar um Problema
Ordenador de Chaves JSON
Comentários
Ainda não há comentários — seja o primeiro a escrever um!