Comparação estrutural de JSON
Compare duas estruturas JSON e confira adições, remoções e alterações em caminhos explícitos, preservando a escrita dos números sem arredondamento.
Esta página mostra as ferramentas disponíveis neste idioma dentro do escopo atual. Isso não significa que todas as ferramentas do site estejam traduzidas para todos os idiomas.
Como usar
Cole os textos JSON anterior e posterior e compare-os. Confira o tipo de alteração, o caminho e o texto JSON antes e depois de cada alteração; navegue pelas páginas da prévia quando necessário. Copie o relatório completo ou baixe-o como json-diff.json usando a ação correspondente. Editar uma entrada invalida o resultado anterior; o relatório não substitui nenhuma entrada.
Antes: {"n":1,"a":[1,2]}; depois: {"a":[2,1],"n":1.0}. Há três alterações: /n do texto 1 para o texto 1.0, /a/0 de 1 para 2 e /a/1 de 2 para 1. Mudar apenas a ordem das duas chaves do objeto não acrescenta nenhuma alteração. A chave a/b~c aparece em /a~1b~0c.
Compatibilidade e limites
A ordem das chaves de um objeto não influencia a comparação, mas os arrays são comparados por índice; não são inferidas movimentações de itens nem correspondências de conjuntos. Os números são comparados pela escrita original: 1, 1.0 e 1e0 são diferentes e nunca são convertidos em Number. As strings JSON são decodificadas para comparação sem normalização Unicode. Adicionar ou remover um ramo, ou alterar seu tipo, produz uma linha que contém o ramo completo. Um caminho vazio indica a raiz; JSON Pointer representa ~ como ~0 e / como ~1. Os campos before e after do relatório são strings que contêm JSON compacto, não valores numéricos arredondados. Um campo é omitido quando aquele lado está ausente, enquanto JSON null é representado pela string "null". O relatório descreve diferenças; não é um JSON Patch para aplicar alterações. O processamento ocorre no navegador sem executar o conteúdo JSON, enviá-lo nem salvá-lo ou copiá-lo automaticamente.
Perguntas frequentes
Um resultado igual significa que os textos são idênticos byte a byte?
Não. Os espaços fora das strings, a ordem das chaves de um objeto e as formas de escape dos caracteres podem ser diferentes, mesmo que os valores sejam iguais segundo esta política. Nesse caso, a lista changes fica vazia, e o relatório ainda pode ser copiado ou baixado. Por outro lado, uma escrita diferente de um número ou uma ordem diferente dos elementos de um array conta como diferença, mesmo quando o significado parece semelhante.
Ferramentas relacionadas
Formatador e validador de JSON
Formate, minifique e valide JSON preservando números grandes e rejeitando chaves duplicadas.
Comparador de diferenças entre textos
Compare o texto original e o alterado linha a linha, mostrando adições e remoções em um worker local com limites.
Conversor de CSV e JSON
Converta tabelas CSV e JSON localmente, preservando as células como texto e verificando cabeçalhos e aspas.