JSON Diff

Compare dois documentos JSON e veja um diff estrutural do que foi adicionado, removido e alterado — inteiramente no seu navegador.

Os dois documentos JSON são analisados e comparados localmente no seu navegador e nunca enviados, mas evite colar segredos ou credenciais de produção em qualquer ferramenta online.

Precisa reformatar o resultado? Experimente o Formatador JSON.

Sobre JSON Diff

O JSON Diff compara dois documentos JSON e mostra um diff estrutural em vez de um diff de texto linha a linha. Cole o JSON original à esquerda e a versão alterada à direita, e ele analisa ambos e informa exatamente quais valores foram adicionados, removidos, alterados ou tiveram o tipo modificado — cada um com um caminho como user.roles[2]. Como a comparação é semântica, reordenar as chaves de um objeto nunca aparece como diferença, então você só vê as mudanças que realmente importam. Ative Ignorar ordem de arrays para comparar arrays como conjuntos, ou Ordenar chaves para normalizar os dois lados na visualização lado a lado. Foi feito para desenvolvedores que comparam respostas de API, arquivos de configuração e fixtures. Tudo roda localmente no seu navegador, então o JSON que você cola nunca é enviado e permanece no seu dispositivo.

Recursos

Como usar JSON Diff

  1. Cole o JSON original na caixa Original à esquerda.
  2. Cole o JSON atualizado na caixa Alterado à direita.
  3. Leia o diff colorido: verde para adicionado, vermelho para removido, âmbar para valores alterados.
  4. Ative Ignorar ordem de arrays ou Ordenar chaves se a ordem não deve contar como diferença.
  5. Mude para Lado a lado para comparar os dois documentos formatados, ou copie o resumo do diff.

Exemplo

Entrada

// Original
{ "name": "Ada", "roles": ["admin"], "active": 1 }

// Changed
{ "active": "1", "name": "Ada", "roles": ["admin", "editor"] }

Saída

+ roles[1]: "editor"
~ active: 1 → "1"   (type changed)

Chaves reordenadas são ignoradas; um novo item de array é adicionado e active muda de número para string.

Erros comuns e solução de problemas

Perguntas frequentes

O JSON Diff ignora a ordem das chaves dos objetos?
Sim. A comparação é semântica, então dois objetos com as mesmas chaves e valores são iguais independentemente da ordem das chaves. Apenas adições, remoções e mudanças de valor reais são reportadas, cada uma com seu caminho.
Como o JSON Diff lida com arrays em ordem diferente?
Por padrão, os arrays são comparados por posição, então reordenar elementos aparece como mudanças. Ative Ignorar ordem de arrays para comparar arrays como multiconjuntos, onde apenas membros genuinamente adicionados ou removidos são sinalizados.
Por que 1 e "1" são mostrados como diferentes?
Porque seus tipos JSON diferem — um é um número e o outro uma string. O JSON Diff rotula isso como mudança de tipo, separada de uma mudança de valor comum, para que você detecte números acidentalmente transformados em string em respostas de API.
O que significa um caminho como user.roles[2] no diff?
Ele aponta para o local exato da mudança: a chave user, depois seu array roles, depois o elemento no índice 2. As chaves de objeto usam pontos e os elementos de array usam índices entre colchetes.
Posso comparar JSON profundamente aninhado e arrays aninhados?
Sim. O JSON Diff percorre os dois documentos recursivamente através de objetos aninhados e arrays de qualquer profundidade, reportando cada mudança em seu caminho completo para que payloads grandes e profundamente aninhados permaneçam legíveis.
O JSON que eu colo no JSON Diff é enviado para algum lugar?
Não. Os dois documentos são analisados e comparados inteiramente no seu navegador, então o JSON que você cola — incluindo quaisquer campos sensíveis — permanece no seu dispositivo e nunca é enviado para um servidor.

Ferramentas relacionadas

Todas as ferramentas de ArrayKit