Um comparador de JSON rápido e privado
Ao trabalhar com estruturas de dados complexas, encontrar um único valor modificado ou uma chave ausente pode ser muito frustrante. Esta ferramenta de comparação de JSON foi criada para analisar e destacar instantaneamente as diferenças exatas entre dois payloads JSON. Em vez de ler milhares de linhas de código, você recebe um relatório limpo e estruturado mostrando exatamente o que mudou.
Como esta ferramenta roda totalmente no seu navegador, ela é uma maneira completamente privada de fazer um JSON diff online. Seus dados nunca são enviados para um servidor nem armazenados em um banco de dados. Você pode colar com segurança respostas de APIs proprietárias, payloads com dados de clientes ou configurações sensíveis de ambiente sem risco de vazamento de dados.
Como funciona a comparação profunda de JSON
Se você deseja comparar dois arquivos JSON, usar um Comparador de Texto padrão geralmente leva a falsos positivos. Ferramentas de texto simples comparam os dados linha por linha. Se o seu JSON modificado tiver uma indentação diferente, ou se as chaves de um objeto estiverem em outra ordem, um comparador de texto marcará o bloco inteiro como alterado.
Esta ferramenta funciona de maneira diferente. Ela converte o texto em objetos JavaScript reais e faz uma comparação profunda e recursiva da própria estrutura de dados. Ela ignora espaços em branco, indentação e a ordem das chaves do objeto. Se {"status": "ok", "code": 200} se tornar {"code": 200, "status": "ok"}, a ferramenta os reconhecerá como perfeitamente idênticos.
Quando encontra uma diferença, ela gera o caminho exato da alteração usando a notação de ponto e a sintaxe de colchetes padrão. Por exemplo, se a terceira tag em um array mudar, a ferramenta apontará diretamente para tags[2] em vez de apenas destacar uma linha aleatória em um arquivo enorme.
Lidando com arrays: estrito vs. independente de ordem
Um dos desafios mais comuns em um comparador de JSON é lidar com arrays. Às vezes, a ordem dos itens em um array é estritamente importante. Outras vezes, um array é apenas uma lista não ordenada de itens, e você só quer saber se os conteúdos coincidem.
Por padrão, esta ferramenta compara arrays estritamente pelo índice. Ela verifica se o primeiro item no original corresponde ao primeiro item no modificado, e assim por diante.
Se você marcar a opção Ignorar ordem do array, a ferramenta muda de comportamento. Ela serializa e ordena alfabeticamente o conteúdo de ambos os arrays antes de compará-los. Isso significa que se o seu array original for ["apple", "banana"] e o modificado for ["banana", "apple"], a ferramenta apontará zero alterações. Esse recurso é essencial ao comparar respostas de API de bancos de dados que não garantem uma ordenação específica.
Casos de uso comuns
Depuração de respostas de API. Quando um endpoint de API para de funcionar de repente, comparar a resposta antiga que funcionava com a nova que está falhando é a maneira mais rápida de encontrar a causa. Cole ambos os payloads para ver instantaneamente se uma chave foi renomeada, se um tipo de dado mudou de string para integer, ou se um objeto aninhado foi removido.
Revisão de arquivos de configuração. Aplicações modernas dependem muito de arquivos de configuração JSON, como package.json, tsconfig.json ou templates de deploy na nuvem. Antes de fazer o commit de uma alteração, use esta ferramenta para verificar exatamente quais dependências foram atualizadas ou quais configurações foram alteradas.
Auditoria de registros de banco de dados. Bancos de dados orientados a documentos, como o MongoDB, armazenam registros em estruturas semelhantes ao JSON. Se você precisar auditar como um perfil de usuário ou documento específico mudou ao longo do tempo, comparar a exportação histórica do JSON com o estado atual fornece uma trilha de auditoria clara de campos adicionados, removidos e modificados.
Entendendo o resultado
Ao colar um JSON válido em ambos os painéis, a ferramenta gera um resumo e uma lista detalhada das alterações:
- Adicionado (+): Chaves ou itens de array que existem no JSON modificado, mas não no original. Eles são destacados em verde.
- Removido (−): Chaves ou itens de array que existem no JSON original, mas estão ausentes na versão modificada. Eles são destacados em vermelho.
- Alterado (~): Chaves que existem em ambos, mas possuem valores diferentes (ex.: uma string foi atualizada ou um booleano passou de
trueparafalse). Eles são destacados em amarelo, mostrando os valores antigos e novos.
Se precisar compartilhar os resultados da comparação com um colega ou colá-los em um relatório de bug, você pode usar o botão Copiar. Ele copia um resumo limpo, em texto simples, de cada caminho alterado e seus respectivos valores.
Para manipulações adicionais, você pode formatar dados desorganizados primeiro usando o Formatador JSON ou, após finalizar a estrutura do seu JSON, gerar definições de tipos usando o conversor de JSON para TypeScript.