Comparador de JSON: diff de estrutura e de valores
Compare duas estruturas JSON em tempo real e identifique na hora as chaves adicionadas, removidas ou alteradas, com formatação automática.
Comparar dois arquivos JSON: como o diff é calculado
A ferramenta analisa os dois JSON e os percorre chave por chave: cada caminho (por exemplo settings.theme) é classificado como adicionado, removido, modificado ou de tipo alterado. A ordem das chaves é ignorada, mas as listas são comparadas posição por posição.
O método
- Cada texto é lido com o analisador JSON padrão do navegador. Em caso de erro de sintaxe (vírgula final, aspas simples, comentário), a mensagem de erro é exibida e nenhuma comparação é feita.
- Os objetos são comparados sobre a união de suas chaves: uma chave presente apenas à esquerda é “removida”, apenas à direita “adicionada”. Os valores presentes dos dois lados são comparados recursivamente.
- Dois valores simples diferentes dão “modificado”; um número que virou texto (1 e "1") dá “tipo alterado”.
- As listas são tratadas como objetos indexados: o caminho tags.3 designa o 4º elemento.
Exemplo
Com os dois JSON de exemplo, a ferramenta encontra 7 diferenças: appName, version, settings.theme, settings.notifications e settings.maxItems modificados (50 vira 100), settings.cacheEnabled adicionado e tags.3 ("ai") adicionado. A chave active, idêntica, não aparece.
Limites a conhecer
- Um elemento removido no início de uma lista desloca todos os seguintes: ["a","b","c"] comparado a ["b","c"] mostra duas modificações e uma remoção, não uma única remoção.
- Os números são lidos em dupla precisão: acima de 9.007.199.254.740.991, dois inteiros diferentes podem ser considerados iguais. Compare os identificadores longos como texto.
- Se uma chave aparece duas vezes no mesmo objeto, apenas o último valor é considerado. 1.0 e 1 são considerados iguais.
- O botão de formatação reindenta os dois textos com 2 espaços; a comparação é feita no navegador, sem envio de dados.
Fontes e datas: formato JSON definido pela RFC 8259 (dezembro de 2017), cuja seção 6 limita a interoperabilidade dos inteiros ao intervalo ±(2⁵³ − 1) (verificado em 14/10/2026).
Perguntas frequentes
A ordem das chaves importa na comparação?
Não. {"a":1,"b":2} e {"b":2,"a":1} são considerados idênticos, pois a ferramenta compara as chaves pelo nome. A RFC 8259 aliás esclarece que a ordem dos membros de um objeto não tem significado garantido.
Por que uma lista reordenada mostra tantas diferenças?
As listas são comparadas posição por posição. Se um elemento é removido no início, cada elemento seguinte muda de posição: ["a","b","c"] contra ["b","c"] dá duas modificações e uma remoção.
O que significa “tipo alterado”?
A mesma chave contém um valor de tipo diferente nos dois lados, por exemplo o número 1 à esquerda e o texto "1" à direita. É uma fonte frequente de bugs entre uma API e seu cliente.
Por que meu JSON é recusado?
A ferramenta aplica a sintaxe JSON estrita: aspas duplas obrigatórias, sem vírgula depois do último elemento, sem comentários. A mensagem de erro do navegador costuma indicar a posição do caractere com problema.
A ferramenta é realmente gratuita?
Sim, todas as ferramentas do Kristools são 100% gratuitas e acessíveis sem cadastro.
Meus dados estão protegidos?
Sim. Todo o processamento é feito diretamente e com segurança no seu navegador. Nenhum dado pessoal é enviado para os nossos servidores.