Comparador JSON

Compare dois objetos JSON lado a lado. Formata automaticamente, ordena chaves e destaca diferenças.

Como Usar

  1. Paste your first JSON into the left panel
  2. Paste your second JSON into the right panel
  3. Click Compare — both sides are auto-formatted and sorted
  4. Differences are highlighted: red for removed lines, green for added lines

Perguntas Frequentes

  • Does key order matter?

    No. Both JSON objects are sorted by keys before comparing, so differences in key order are ignored.

  • Can I compare nested objects?

    Yes. The diff works on the formatted text after sorting, so nested structures are fully compared.

  • What do the colors mean?

    Red lines exist only in the left (original) input. Green lines exist only in the right (modified) input. Unchanged lines have no highlight.

  • Is my data sent to a server?

    No. All processing happens entirely in your browser.

Por Que Comparar JSON é Mais Complexo do Que Parece

À primeira vista, comparar dois objetos JSON parece trivial — basta verificar se as strings são iguais. Mas na prática, a comparação de JSON tem nuances que tornam essa abordagem ingênua inadequada para a maioria dos casos reais.

O Problema da Ordem das Chaves

O padrão JSON (RFC 8259) define objetos como coleções não ordenadas de pares chave-valor. Isso significa que {"a": 1, "b": 2} e {"b": 2, "a": 1} são semanticamente idênticos — representam o mesmo dado. No entanto, uma comparação de texto puro marcaria isso como diferença.

APIs REST frequentemente retornam as mesmas chaves em ordens diferentes dependendo da versão, do servidor que respondeu ou da linguagem de programação no backend. Um comparador JSON inteligente normaliza a ordem das chaves antes de comparar, eliminando esse ruído.

Formatação e Espaços em Branco

JSON minificado e JSON formatado representam os mesmos dados, mas são textualmente completamente diferentes. Um diff de texto entre {"a":1} e { "a": 1 } mostraria a linha inteira como alterada — sem nenhuma utilidade. Um comparador JSON formata ambos os lados uniformemente antes de mostrar as diferenças.

Cenários de Uso

Revisão de Respostas de API

Durante o desenvolvimento, é comum precisar comparar a resposta de uma API em produção com a resposta em staging, ou comparar o que uma API retornava antes e depois de uma mudança. O diff JSON permite identificar exatamente quais campos foram adicionados, removidos ou alteraram de valor.

Revisão de Configurações

Arquivos package.json, tsconfig.json, composer.json e similares crescem e mudam ao longo do tempo. Antes de fazer merge de um branch, comparar as versões do arquivo de configuração ajuda a identificar dependências adicionadas, versões bumpeadas ou opções de configuração alteradas.

Debugging de Transformações de Dados

Ao desenvolver pipelines de dados que transformam JSON (parsing, normalização, enriquecimento), comparar o JSON de entrada com o de saída — ou o resultado esperado com o resultado real em testes — é uma forma rápida de identificar onde a transformação está errada.

Documentação de Mudanças em APIs

Ao documentar breaking changes ou evoluções de uma API, um diff JSON entre o schema antigo e o novo comunica as mudanças de forma clara e precisa para os consumidores da API.

Por Que o Diff de Texto Simples é Insuficiente

Ferramentas como git diff comparam arquivos linha por linha. Para JSON, isso tem limitações sérias:

  • Uma refatoração que apenas reordena chaves aparece como múltiplas mudanças, obscurecendo a mudança real (nenhuma)
  • A adição de um campo dentro de um objeto aninhado pode afetar a indentação de dezenas de linhas subsequentes, gerando um diff enorme para uma mudança pequena
  • Chaves duplicadas com valores diferentes são impossíveis de identificar visualmente em JSON longo

Um comparador JSON resolve esses problemas ao trabalhar com a estrutura de dados, não com o texto bruto.

Dicas para Comparações Eficazes

  • Sempre formate antes de comparar: se os dados têm indentação inconsistente, normalize primeiro
  • Remova campos dinâmicos: timestamps, IDs gerados e tokens mudam a cada requisição — remova-os antes de comparar respostas de API
  • Compara o dado, não o transporte: headers HTTP e metadados não fazem parte do payload JSON — compare apenas o corpo da resposta