JSON Diff refere-se à comparação de diferenças entre dois conjuntos de dados JSON, identificando campos adicionados, removidos e modificados entre eles. No desenvolvimento diário, frequentemente precisamos saber 'exatamente o que mudou' entre dois JSONs: o que mudou na estrutura de retorno antes e depois de uma atualização de API, onde as configurações diferem entre dois ambientes, em qual campo o resultado real se desvia da base esperada em testes automatizados. Verificação manual linha por linha é lenta e propensa a erros, a ferramenta JSON Diff destaca automaticamente as diferenças.
Comparação de diferenças JSON geralmente tem duas abordagens. Uma é 'diferença textual' (textual diff): após formatar JSON em texto multilinha padronizado, compara linha por linha similar ao Git diff, exibindo visualmente adições/remoções/alterações em cada linha. A outra é 'diferença semântica/estrutural' (structural diff): analisa JSON em estrutura de árvore, compara valores e tipos um por um por caminho de campo (como user.address.city), sem ser afetado por ordem de escrita de campos, indentação e outros fatores de formatação. Esta ferramenta oferece ambas visualizações de texto e semântica, alternáveis conforme necessidade.
Por que formatar antes de comparar? Porque os mesmos dados podem ter formatações completamente diferentes (uma linha vs múltiplas linhas, 2 espaços vs 4 espaços), se comparar diretamente pelo texto original, gerará muitas 'falsas diferenças' causadas por diferenças de formatação. Esta ferramenta analisa e formata uniformemente os JSONs de ambos os lados antes da comparação, eliminando interferência de caracteres em branco para que você veja apenas mudanças de dados realmente significativas.
É importante notar que a ordem das chaves em objetos JSON não é semanticamente importante ({"a":1,"b":2} é equivalente a {"b":2,"a":1}), mas a ordem dos elementos em arrays é significativa ([1,2] é diferente de [2,1]). Portanto, quando você se preocupa apenas se o conteúdo do array é consistente, independentemente da ordem, recomendamos ordenar os arrays ou ordenar as chaves antes de comparar, para evitar que mudanças de ordem sejam erroneamente consideradas diferenças.
Toda a formatação e comparação desta ferramenta são feitas localmente no navegador, os dados não são enviados ao servidor; suporta também destaque em nível de caractere, contagem de adições/remoções/modificações, comparação simultânea com múltiplas abas e compartilhamento de cenários de comparação via URL, adequada para integração de APIs, comparação de configurações, asserções de teste e Code Review.