Comparador de JSON (Diff)

Compare dois documentos JSON e veja exatamente o que foi adicionado, removido e alterado, por caminho. Cole ou envie os dois lados, e copie ou baixe as diferenças, tudo no seu navegador.

100% Processamento no Lado do Cliente

Ambos os documentos JSON são comparados totalmente no seu navegador. Nada é enviado para um servidor.

Diferenças
Adicionados: 0 Removidos: 0 Alterados: 0

Nenhuma diferença encontrada — os dois documentos JSON são equivalentes.

O que é um comparador de JSON (diff)?

Um comparador de JSON (diff) compara dois documentos JSON — uma versão "original" e uma "modificada" — e reporta as diferenças exatas entre eles: quais chaves ou itens de array foram adicionados, quais foram removidos, e quais valores mudaram, identificados pelo seu caminho dentro do documento (como user.address.city ou items[2]).

Diferente de um diff de texto simples, que compara linha por linha e se confunde com JSON reindentado ou reordenado, um diff estrutural de JSON analisa os dois documentos e compara seus dados reais, então diferenças de formatação nunca produzem falsos positivos e cada mudança reportada é uma diferença real nos dados.

Como funciona

  • Adicione os dois documentos: cole o JSON A (o original) e o JSON B (a versão modificada) diretamente, ou envie um arquivo .json para qualquer um dos lados.
  • Escolha suas opções: ative "Ignorar a ordem dos arrays" se os elementos de um array puderem ser reordenados sem que isso conte como uma mudança real.
  • Veja o resultado instantaneamente: a ferramenta analisa e compara os dois documentos no navegador enquanto você digita, listando cada valor adicionado, removido e alterado por caminho, com contagens em tempo real para cada categoria.
  • Copie ou baixe: copie o diff como JSON para a área de transferência ou baixe-o como um arquivo diff.json.

Recursos

  • Cole JSON diretamente ou envie um arquivo .json para qualquer um dos lados
  • Comparação instantânea e ao vivo enquanto você digita, sem precisar clicar em nada
  • Comparação estrutural, não baseada em linhas — indentação e ordem das chaves nunca causam diferenças falsas
  • Cada mudança reportada com seu caminho exato (ex.: user.address.city ou items[2].name)
  • Distingue valores adicionados, removidos e alterados com resultados codificados por cor
  • Modo opcional "Ignorar a ordem dos arrays" para arrays sem uma ordem significativa
  • Troca com um clique entre o JSON A e o JSON B
  • Contagens em tempo real de valores adicionados, removidos e alterados
  • Copie o diff como JSON ou baixe-o como arquivo
  • Processamento 100% no navegador para sua privacidade

Boas práticas

  • Coloque a versão "antes" no JSON A e a "depois" no JSON B: esta ferramenta reporta valores removidos como presentes em A mas ausentes em B, e adicionados ao contrário — manter a ordem consistente torna o diff mais fácil de ler.
  • Ative "Ignorar a ordem dos arrays" para coleções sem ordem: se um array representa um conjunto de tags, IDs ou itens onde a ordem não tem significado, ativar isso evita reportar um array reordenado como uma enxurrada de mudanças não relacionadas.
  • Use o botão de troca para verificar um diff nas duas direções: útil quando você não tem certeza de qual documento é o "original" — trocar apenas inverte de qual lado cada adição/remoção é reportada.
  • Lembre-se de que os caminhos usam notação de ponto para objetos e colchetes para arrays: um caminho como orders[3].items[0].sku significa o campo sku do 1º item do 4º pedido — leia os caminhos da esquerda para a direita, seguindo cada chave e índice em ordem.
  • Compare registros individuais em vez de exportações combinadas enormes quando possível: um diff de um único objeto de usuário é muito mais fácil de revisar do que um diff de um dump completo de banco de dados — restrinja a comparação ao que você realmente precisa verificar.

Solução de problemas

Diz que o JSON A ou o JSON B não é válido

Verifique se há uma vírgula sobrando após o último item de um array ou objeto, chaves sem aspas, aspas simples em vez de duplas, ou um colchete não fechado no lado sinalizado — essas são as causas mais comuns de falha ao analisar JSON.

Um array aparece como completamente diferente mesmo tendo os mesmos itens

Por padrão, os arrays são comparados posição por posição, então os mesmos itens em uma ordem diferente são reportados como mudanças em cada posição. Ative "Ignorar a ordem dos arrays" se a ordem do array não importar para sua comparação.

Um valor aparece como "alterado" mesmo parecendo igual

Isso geralmente significa que os tipos diferem mesmo que os valores impressos pareçam parecidos — por exemplo, o número 5 versus a string "5", ou true versus a string "true". Comparadores de JSON comparam tanto por tipo quanto por valor.

A lista de diferenças é muito longa e difícil de revisar

Documentos muito grandes ou profundamente aninhados podem produzir uma longa lista plana de mudanças. Restrinja sua comparação a um subdocumento menor (por exemplo, um registro em vez de um array completo de registros) se você só precisa verificar uma área específica.

Casos de uso comuns

  • Revisar mudanças em respostas de API: compare uma resposta antes e depois de uma mudança no backend para confirmar que apenas os campos pretendidos foram afetados.
  • Auditar mudanças em arquivos de configuração: compare duas versões de um arquivo de configuração JSON para ver exatamente quais configurações mudaram entre implantações.
  • Depurar por que dois payloads "idênticos" se comportam de forma diferente: identifique diferenças sutis como uma string versus um número, ou uma chave faltando, fáceis de passar despercebidas a olho nu.
  • Verificar scripts de migração ou transformação de dados: compare a entrada e a saída de uma transformação para confirmar que ela mudou exatamente os campos que deveria.
  • Comparar fixtures de teste ou saída de testes de snapshot: veja rapidamente o que mudou entre um snapshot JSON esperado e o real quando um teste falha.

Perguntas frequentes

Qual a diferença disso para uma ferramenta de diff de texto comum?

Um diff de texto compara linha por linha, então reindentar ou reordenar chaves em um JSON por outro lado idêntico produz um diff enorme e confuso. Esta ferramenta analisa os dois documentos e compara a estrutura de dados real, então apenas diferenças de valor reais são reportadas, independentemente da formatação.

O que significa o caminho em cada resultado?

O caminho mostra exatamente onde no documento está a diferença, usando notação de ponto para chaves de objeto e notação de colchetes para índices de array — por exemplo, user.address.city ou tags[2]. Um caminho vazio significa que a diferença está no nível mais alto do documento.

Por que reordenar um array mostrou muitas mudanças?

Por padrão, os itens do array são comparados por sua posição (índice), então mover um item muda o que está em cada posição a partir dali. Ative "Ignorar a ordem dos arrays" se o array representa uma coleção sem ordem.

A ferramenta me diz se o tipo de um valor mudou, não só o valor?

Sim. Um valor mudando de string para número, de objeto para array, ou de null para um valor real é reportado como uma diferença "alterada", assim como uma mudança de valor comum.

Posso comparar arrays de objetos, como uma lista de registros?

Sim, arrays de objetos são comparados recursivamente — cada objeto em cada posição do array é comparado campo por campo, então você verá exatamente quais campos mudaram dentro de qual item do array.

Vocês armazenam algum dos documentos JSON?

Não. Tudo acontece localmente no seu navegador, e nenhum dos documentos é enviado ou salvo.

Existe um limite de tamanho?

A comparação roda na memória do seu navegador, então documentos JSON muito grandes (dezenas de megabytes ou mais, ou estruturas muito aninhadas) podem ficar lentos ou usar bastante memória, dependendo do seu dispositivo.

Share this tool

Share a direct link or embed this tool on your site. Keep the Tooladex attribution link to support the project.