Compare documentos JSON online
Compare dois documentos JSON estritos pelos valores. Confira adições, remoções e alterações com diagnósticos localizados e pré-visualizações limitadas.
Espaço de trabalho da ferramenta
Comparar documentos JSON
É necessário JavaScript para comparar JSON no seu navegador.
Insira texto JSON estrito para comparar.
Insira texto JSON estrito para comparar.
- Compare valores JSON pelo significado, independentemente dos espaços ou da ordem das chaves dos objetos.
- Os itens dos arrays são comparados por posição.
- Cada entrada pode conter até 1.000.000 unidades de código UTF-16.
A comparação é processada localmente no seu navegador. O JSON não é enviado a um servidor.
Ainda não há uma comparação.
Diagnósticos de entrada
Diagnósticos do JSON anterior
Diagnósticos do JSON novo
Ainda não há uma comparação.
Resumo da comparação
- Total de alterações
- 0
- Adições
- 0
- Remoções
- 0
- Alterações
- 0
Nenhuma diferença foi encontrada entre os valores representados.
Um ou mais números podem ter perdido precisão durante a análise.
Diferenças
| Tipo de alteração | Caminho | Valor anterior | Valor novo |
|---|
Compare dois documentos JSON
Cole o documento anterior em JSON anterior e o mais recente em JSON novo; depois, selecione Comparar. O resultado lista cada alteração semântica, com o caminho JSON e os valores anterior e novo. O resumo conta adições, remoções e alterações separadamente. Uma propriedade nova é uma adição, uma propriedade ausente é uma remoção e um valor diferente em um caminho existente é uma alteração.
Este exemplo tem duas adições e duas alterações:
{
"perfil": { "ativo": true, "regiao": "oeste" },
"marcadores": ["azul", "antigo"]
}
{
"marcadores": ["azul", "novo", "extra"],
"perfil": { "regiao": "oeste", "ativo": false },
"nota": null
}
As adições são $.nota e $.marcadores[2]. As alterações são
$.perfil.ativo e $.marcadores[1]. O resumo é 2 adições, 0 remoções, 2
alterações e 4 no total. Reordenar as chaves de perfil não cria diferenças.
Como os valores JSON são comparados
Espaços em branco e ordem das propriedades de objetos não afetam a comparação.
Os itens dos arrays são associados pelo índice; inserir um item perto do início
pode alterar os valores de várias posições seguintes. Uma propriedade ausente é
diferente de uma propriedade com valor null; null, a string "null" e uma
string vazia também são valores distintos.
Quando um valor muda para outro tipo JSON, a ferramenta registra uma alteração no caminho correspondente, sem listar cada diferença dentro do valor substituído:
{"perfil":{"nome":"Ada","funcoes":["leitor","editor"]}}
{"perfil":"arquivado"}
Isso corresponde a uma alteração em $.perfil. A subárvore do objeto anterior
e a nova string são os dois valores desse registro.
JSON estrito e precisão numérica
As duas entradas devem ser JSON estrito. Comentários, vírgulas finais, strings com aspas simples e nomes de propriedade duplicados são rejeitados. Os diagnósticos indicam qual entrada tem o problema e incluem linha, coluna ou caminho somente quando o analisador fornece essa informação. A lista pode indicar que nem todos os diagnósticos foram exibidos.
Durante a comparação, os números JSON são representados como números JavaScript. Números muito grandes ou com muitas casas podem perder precisão durante a análise; um aviso aparece quando o analisador detecta esse risco. A comparação usa os valores JSON representados, não números matemáticos de precisão arbitrária nem a grafia original do número.
Limites de entrada, operação e pré-visualização
Cada entrada aceita até 1.000.000 unidades de código UTF-16. A análise também limita a profundidade a 200 níveis, os nós a 100.000, os diagnósticos a 100 e o trabalho de análise a 1.000.000 unidades por documento. A comparação tem um orçamento de 1.000.000 unidades de trabalho e aceita no máximo 1.000 registros de alteração. A apresentação completa é limitada a 2.000.000 unidades UTF-16, e uma operação pode aguardar até 15 segundos pela resposta do Worker.
Cada valor mostra uma pré-visualização JSON completa de até 512 unidades UTF-16. Para valores maiores, aparece um resumo com o tipo JSON e a quantidade de itens, chaves ou unidades de código; o valor completo continua sendo comparado. Os resultados aparecem em páginas de 50 linhas, mas a contagem abrange a comparação inteira. Se um limite for alcançado, reduza a entrada ou compare uma alteração menor.
Processamento local e cancelamento
A análise e a comparação são executadas localmente no navegador. O texto das entradas não é enviado a um servidor da aplicação. Selecione Cancelar para interromper uma comparação em andamento; os dois campos de texto são mantidos. Esta ferramenta não salva as entradas automaticamente.