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
- Diff semântico e independente da ordem das chaves — chaves de objeto reordenadas não são marcadas como mudanças
- Informa valores adicionados, removidos, alterados e com tipo alterado, cada um com um caminho como user.roles[2]
- Distingue uma mudança de tipo real (1 vs "1", null vs um valor) de uma mudança de valor comum
- Contagens de resumo mostram quantas entradas foram adicionadas, removidas e alteradas de relance
- A opção Ignorar ordem de arrays compara arrays como multiconjuntos de valores em vez de por posição
- Normalização Ordenar chaves para uma comparação lado a lado limpa dos dois documentos formatados
- Visualização lado a lado com destaque de sintaxe dos dois documentos JSON embelezados
- Copie o diff inteiro como um resumo em texto puro, ou limpe as duas entradas com um clique
Como usar JSON Diff
- Cole o JSON original na caixa Original à esquerda.
- Cole o JSON atualizado na caixa Alterado à direita.
- Leia o diff colorido: verde para adicionado, vermelho para removido, âmbar para valores alterados.
- Ative Ignorar ordem de arrays ou Ordenar chaves se a ordem não deve contar como diferença.
- 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
- A ferramenta mostra "Invalid JSON on the left side" ou no lado direito. — Corrija o documento sinalizado — o erro indica qual lado falhou e por quê. Cada entrada deve ser um valor JSON completo e válido (objeto, array, string, número, true/false ou null).
- Reordenar os elementos de um array aparece como muitas entradas alteradas. — Ative Ignorar ordem de arrays para que os arrays sejam comparados como conjuntos de valores; sem isso, os arrays são comparados por posição e uma reordenação conta como mudanças.
- 1 e "1" são reportados como diferentes mesmo parecendo iguais. — Isso é uma mudança de tipo: o valor da esquerda é um número e o da direita é uma string. O JSON Diff separa intencionalmente mudanças de tipo de mudanças de valor para que sejam fáceis de identificar.
- Dois objetos com as mesmas chaves em ordem diferente são reportados como alterados. — Eles não deveriam ser — o diff é independente da ordem das chaves. Se você vir isso, provavelmente um lado tem uma chave a mais ou a menos, ou um valor difere; verifique o caminho informado.
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