JSON

JSON Diff / Compare

Comparação de dois documentos JSON — o que foi adicionado, removido ou alterado, com o caminho exato de cada diferença.


                        
                    

Unlike a plain text diff, JSON Diff compares two documents by structure rather than by line: it understands that key order in an object doesn't matter, and it shows the exact path (e.g. user.address.city) to every difference.

How to use it

Common uses

Things to keep in mind

Array elements are usually compared by position (index) — inserting one element near the start can show every following item as "changed", even though they merely shifted.

The comparison is structural, not textual — two JSON documents with identical data but different formatting or key order are treated as the same.

Artigo sobre esta ferramenta: JSON Diff: em que a comparação estrutural difere da textual

Perguntas frequentes

Como esta ferramenta decide o que conta como uma "diferença"?

Ela compara recursivamente ambas as estruturas JSON chave por chave e índice por índice, reportando valores adicionados, removidos e alterados — a ordem das chaves do objeto é ignorada, mas a ordem dos elementos do array importa.

Por que reordenar itens de um array aparece como uma alteração?

Arrays JSON são ordenados, então um item movendo do índice 2 para o índice 0 é tratado como remoção e reinserção, e não como uma não-operação, mesmo que os valores sejam idênticos.

Meus dados JSON são enviados para algum lugar para calcular o diff?

Não. A comparação acontece inteiramente no seu navegador — nenhum arquivo é enviado a um servidor.

A ordem das chaves de um objeto é levada em conta no resultado da comparação?

Não, a comparação estrutural olha apenas para os próprios dados — a presença de um campo, seu valor e seu tipo. A ordem das chaves num objeto JSON não é semanticamente significativa, então não afeta o resultado.

É possível comparar elementos de um array por identificador em vez de por posição?

Isso depende do algoritmo de comparação usado. Ferramentas de diff simples sempre comparam os elementos do array por índice; ferramentas mais avançadas tentam parear objetos por um campo comum, como id, para mostrar com mais precisão uma inserção ou remoção.

Artigos: JSON