JSON Diff: Compare Objetos JSON
Cole dois documentos JSON para ver exatamente o que mudou. Cada diferença é listada pelo caminho, como $.users[2].email, e formatação ou ordem das chaves nunca geram falsos alarmes.
Roda no seu navegadorSem cadastroNada é enviado
Caminhos alterados
| Mudança | Caminho | Valor antigo | Valor novo |
|---|
Como usar: JSON Diff
- Cole o JSON original à esquerda e o JSON modificado à direita, ou abra dois arquivos.
- Erros de sintaxe aparecem abaixo de cada caixa com a linha e a coluna, para você corrigir rapidamente.
- Leia a tabela Caminhos alterados: cada linha mostra se um valor foi adicionado, removido ou alterado, com os valores antigo e novo.
- Marque Ignorar ordem dos arrays quando as listas forem conjuntos, por exemplo tags ou permissões.
- Role até a visualização lado a lado para ver as mudanças no contexto, ou copie a lista de mudanças como JSON.
Por que um diff estrutural de JSON é melhor que um diff de texto
Um diff de texto simples compara caracteres e linhas, então dois arquivos JSON com os mesmos dados podem parecer totalmente diferentes se um estiver minificado, indentado de outro jeito ou com as chaves em outra ordem. Esta ferramenta primeiro analisa os dois documentos e compara os dados: objetos são comparados chave a chave, independentemente da ordem, e números, strings, booleanos e null são comparados pelo valor. Só mudanças reais são reportadas.
Como as mudanças são reportadas
Cada diferença recebe uma localização no estilo JSONPath, como $.owner.email ou $.items[3].price, e um de três tipos:
- adicionado: a chave ou o elemento do array existe apenas no JSON modificado.
- removido: existe apenas no JSON original.
- alterado: existe nos dois, mas o valor é diferente, incluindo mudanças de tipo, como uma string que virou número.
Os arrays são alinhados com um algoritmo de maior subsequência comum (LCS), então inserir um elemento no início de uma lista é reportado como uma única adição, em vez de marcar todos os elementos seguintes como alterados.
Ignorando a ordem dos arrays
Muitas APIs retornam listas cuja ordem não tem significado, como papéis, tags ou IDs. Com Ignorar ordem dos arrays ativado, os arrays são comparados como coleções: um elemento só conta como adicionado ou removido se não tiver um equivalente igual do outro lado. A visualização lado a lado então ordena os elementos dos arrays para que listas iguais fiquem alinhadas.
Usos típicos
Compare respostas de API entre staging e produção, verifique o que uma migração mudou em um arquivo de configuração, revise diferenças entre dois package.json ou tsconfig e depure testes de snapshot.
Perguntas frequentes
A ordem das chaves importa ao comparar JSON?
{"a":1,"b":2} e {"b":2,"a":1} são considerados iguais. A ordem dos arrays importa por padrão, porque arrays são ordenados, mas você pode desativar isso com Ignorar ordem dos arrays.Meu JSON é enviado para um servidor?
O que significam caminhos como $.users[2].email?
$ é a raiz do documento, .users é uma chave e [2] é o terceiro elemento de um array (os índices começam em 0). Chaves com espaços ou caracteres especiais são escritas entre colchetes, como $["first name"].1 é igual a 1.0?
1 e "1", são diferentes e são reportados como alterados.