Comparador de JSON

Compare dois objetos JSON linha por linha. Destaca chaves adicionadas, removidas e modificadas com caminho completo. Suporta arrays, objetos aninhados, tipos.

Comparador de JSON - Compare e Encontre Diferenças em JSON

Diffing JSON é a base de inúmeros fluxos de trabalho de desenvolvedores: comparar snapshots de respostas de API, auditar mudanças de configuração, depurar mutações de estado em Redux/Zustand, revisar drift de infrastructure-as-code e validar migrações de dados. Diferente de um diff de texto simples, uma comparação consciente de JSON entende a estrutura dos seus dados — sabe que {a:1, b:2} e {b:2, a:1} são idênticos apesar da ordem diferente de chaves, que null e undefined se comportam diferentemente, e que deslocamentos de elementos de array não devem cascatear em mudanças espúrias. Esta ferramenta realiza uma comparação recursiva profunda, reporta diferenças com caminhos completos em notação de ponto (ex. user.preferences.theme), e as renderiza em uma visualização codificada por cores (verde=adicionado, vermelho=removido, amarelo=modificado) para você ver exatamente o que mudou.

O que é um Comparador de JSON?

Um Comparador de JSON é uma ferramenta que compara dois objetos JSON e mostra as diferenças entre eles. Ajuda você a:

- Identificar mudanças entre versões de JSON
- Depurar diferenças em respostas de API
- Comparar arquivos de configuração
- Rastrear modificações de dados
- Verificar atualizações de JSON

A ferramenta destaca propriedades adicionadas, propriedades removidas e valores modificados, facilitando ver o que mudou.

Como usar esta ferramenta?

Usar o Comparador de JSON é simples:

1. Cole seu primeiro objeto JSON em 'JSON 1 (Original)'
2. Cole seu segundo objeto JSON em 'JSON 2 (Modificado)'
3. Clique em 'Comparar' para ver as diferenças
4. Revise as diferenças destacadas

A ferramenta mostrará:
- Propriedades adicionadas (verde)
- Propriedades removidas (vermelho)
- Valores modificados com comparação antes/depois
- Diferenças em objetos aninhados

Que tipos de diferenças são detectadas?

A ferramenta detecta todos os tipos de diferenças em JSON:

- Propriedades Adicionadas: Novas chaves no JSON 2 que não existem no JSON 1
- Propriedades Removidas: Chaves no JSON 1 que estão faltando no JSON 2
- Valores Modificados: Propriedades que existem em ambos mas têm valores diferentes
- Mudanças de Tipo: Quando um valor muda de tipo (string para número, objeto para array)
- Mudanças Aninhadas: Diferenças em objetos e arrays aninhados
- Diferenças em Arrays: Elementos de array adicionados, removidos ou alterados

Cada diferença é claramente rotulada e codificada por cor para fácil identificação.

Posso comparar arquivos JSON grandes?

Sim, esta ferramenta pode lidar com arquivos JSON grandes eficientemente. No entanto:

- Arquivos muito grandes (>5MB) podem levar mais tempo para comparar
- Estruturas complexas e profundamente aninhadas requerem mais tempo de processamento
- Limites de memória do navegador podem afetar arquivos extremamente grandes

Dicas para comparar JSONs grandes:
- Formate o JSON primeiro para melhor legibilidade
- Considere comparar seções específicas se possível
- Use um editor de texto para arquivos acima de 10MB
- Certifique-se de que o JSON é válido antes de comparar

E quanto a objetos e arrays aninhados?

A ferramenta suporta totalmente estruturas aninhadas:

Objetos Aninhados:
- Compara propriedades em todos os níveis
- Mostra o caminho completo para propriedades alteradas
- Lida com estruturas profundamente aninhadas

Arrays:
- Detecta elementos adicionados e removidos
- Compara elementos do array
- Mostra posições de índice das mudanças
- Lida com arrays de objetos

O visualizador de diferenças mantém a hierarquia para que você possa ver exatamente onde na estrutura cada mudança ocorreu.

Meus dados estão seguros?

Sim, seus dados estão completamente seguros:

- Toda a comparação acontece no seu navegador
- Nenhum dado é enviado para qualquer servidor
- Não armazenamos ou registramos nenhum dado JSON
- Funciona completamente offline após o carregamento da página
- Sem rastreamento ou analytics dos seus dados

Você pode verificar a privacidade checando a aba de rede do seu navegador - nenhuma requisição é feita ao comparar JSONs.

Comparador de JSON — Compare dois objetos JSON linha por linha. Destaca chaves adicionadas, removidas e modificadas com caminho completo. Sup
Comparador de JSON

Por que dois JSONs aparentemente idênticos são marcados como diferentes?

Seis causas comuns: (1) Espaços dentro de valores de string importam — 'hello' e 'hello ' são diferentes. (2) Precisão numérica: 0.1 + 0.2 em JavaScript produz 0.30000000000000004, que não é igual a 0.3 se algum lado foi parseado dessa soma. (3) Zeros à direita após um ponto decimal são removidos durante o parsing, então '1.0' e '1' comparam iguais após parse mas diferem como strings. (4) Booleanos vs strings: 'true' e true são tipos diferentes. (5) null vs chave ausente — {a: null} tem uma chave, {} não tem. (6) Caracteres Unicode ocultos como zero-width space (U+200B) ou non-breaking space (U+00A0) parecem idênticos em editores mas diferem em nível de byte. Para depurar, copie cada string suspeita em uma ferramenta que revele caracteres invisíveis.

Em que JSON Patch (RFC 6902) difere de um diff visual?

JSON Patch é um formato padronizado (IETF RFC 6902, 2013) que expressa diferenças como uma lista ordenada de operações: {op:'add', path:'/users/2', value:{...}}, {op:'replace', path:'/title', value:'Novo'}, {op:'remove', path:'/draft'}. Aplicar esse patch sequencialmente ao JSON original produz a versão modificada — tornando os patches portáveis, legíveis por máquina e aplicáveis no servidor. Diffs visuais (como esta ferramenta) são projetados para humanos lerem; JSON Patch é projetado para sistemas aplicarem. Muitas APIs (Kubernetes, GitHub, JSON:API) aceitam requisições PATCH em formato JSON Patch. Para diffing bidirecional em bancos de dados, JSON Merge Patch (RFC 7396) é mais simples mas mais com perdas — não pode representar inserções de elementos de array, apenas substituições completas de array.

Esta ferramenta lida com comparação de arrays de forma inteligente?

Arrays são inerentemente ordenados, então a posição importa por padrão — [1,2,3] é diferente de [3,2,1] mesmo contendo os mesmos elementos. A ferramenta reporta diferenças em cada índice: 'índice 0 mudou de 1 para 3'. Para arrays onde a ordem não deve importar (conjuntos, listas de itens independentes), não há forma universal de saber se você quer comparação de conjuntos ou comparação ordenada — você deve ordenar ambos os arrays antes do diff, ou usar um comparador customizado. Para arrays de objetos com um campo id estável (ex. linhas de banco de dados), a abordagem mais precisa é ordenar por id e então fazer diff, o que previne que uma única inserção no meio cascateie em cada índice subsequente ser marcado como 'mudado'. O algoritmo Myers diff usado pelo git é ótimo para este caso mas raramente implementado em ferramentas JSON devido ao custo.

Qual o maior JSON que posso comparar aqui?

A memória do navegador é o limite prático, não o tamanho do arquivo. Navegadores desktop modernos (Chrome, Firefox) lidam confortavelmente com dois JSONs de 50-100 MB em memória; navegadores móveis limitam mais perto de 20-50 MB. A parte mais lenta não é o carregamento mas o passeio recursivo profundo, que é O(N) na contagem total de nós. Um JSON de 100 MB com 10 milhões de chaves aninhadas pode levar 5-15 segundos para fazer diff. Para arquivos maiores que isso, use jq com a opção --arg (jq -n --argjson a "$(cat a.json)" --argjson b "$(cat b.json)" '$a == $b') ou ferramentas streaming-diff especializadas como json-diff-cli ou graphtage. Para comparação programática em código de produção, a função lodash _.isEqualWith com comparador customizado é o padrão JavaScript. Evite colar logs em escala GB em qualquer ferramenta baseada em navegador.

Posso exportar o resultado do diff como relatório?

Atualmente você pode copiar o diff visível para a área de transferência para compartilhar em comentários de revisão de código, threads do Slack ou mensagens de commit. Para uma exportação mais estruturada, cole ambos os JSONs em uma ferramenta CLI como jd (json-diff) que produz patches estilo Unix-diff, ou use Node.js com bibliotecas deep-diff ou microdiff para extrair programaticamente o diff como um array de objetos de mudança (ex. {kind:'edit', path:['user','email'], lhs:'velho@x', rhs:'novo@x'}). Para relatórios visuais em pipelines de QA, json-diff-kit renderiza saída HTML lado a lado adequada para incorporar em relatórios de falha de teste. A maioria das equipes faz round-trip do diff através de CI/CD como documento JSON Patch — portável entre linguagens e aplicável como transformação programática.

Recursos Principais

  • Compare dois objetos JSON
  • Detecte propriedades adicionadas
  • Detecte propriedades removidas
  • Detecte valores modificados
  • Destaque diferenças com cores
  • Mostre valores antes/depois
  • Suporte a objetos e arrays aninhados
  • Lide com arquivos JSON grandes
  • Valide sintaxe JSON
  • Troque posições de JSON
  • Copie diferenças para área de transferência
  • Suporte a modo escuro
  • 100% processamento no cliente - dados nunca saem do seu navegador
  • Funciona offline após carregamento inicial
  • Design responsivo para dispositivos móveis