Comparar JSON
Compare valores JSON e localize membros adicionados, removidos ou alterados.
Seus arquivos são processados aqui, no seu dispositivo
Não enviamos seu arquivo ou conteúdo de texto para um servidor de processamento. Nenhuma conta é necessária e não há cota de operação diária. Ferramentas individuais têm limites de tamanho para proteger a memória do seu dispositivo.
Uma conexão é necessária para carregar o site e seus recursos. Hospedagem pode receber dados técnicos de visitas. Os favoritos armazenam apenas identificadores de ferramenta neste navegador.
Como lidamos com seus dados →Como usar esta ferramenta
- Cole documentos originais e novos em seus respectivos campos.
- Aplicar para comparar tipos, valores, chaves e índices.
- Inspecione os caminhos do relatório e baixe as diferenças se precisar mantê-las.
Um exemplo que você pode verificar
Identifique uma mudança de valor sem confundi-la com a ordem de propriedade.
Entrada de exemplo
Original: {"name":"Ana","active":true}
New: {"active":true,"name":"Luis"}Resultado esperado
[{"path":"/name","change":"changed","before":"Ana","after":"Luis"}]Há uma diferença. Movendo-se ativo não adiciona outro. O relatório usa caminhos JSON Pointer e não é um patch executável.
Comparar JSONUsos e orientação prática
A comparação estrutural do JSON separa as alterações de dados das alterações de apresentação. Documentos com recuo diferente ou membros de objetos diferentes podem representar exatamente os mesmos valores. A ferramenta analisa os dois documentos e compara o conteúdo deles. Quando nada difere, o relatório é um array vazio e o contador exibe zero. Isso não significa que os arquivos originais são byte por byte idênticos: espaço em branco, terminações de linha ou notação numérica podem diferir enquanto produzem o mesmo valor interpretado. Use uma comparação de texto simples quando esses detalhes de representação são o assunto da revisão.
As matrizes são comparadas por posição. Trocar dois itens pode produzir várias mudanças, mesmo quando ambos os itens ainda estão presentes. Os objetos não são automaticamente combinados através de campos como id, e a ferramenta não calcula uma sequência mínima de edições de lista. Para comparar conjuntos não ordenados, primeiro prepare uma representação ordenada por uma chave explícita apropriada aos seus dados. Tipos também importam: 1 difere de "1", false não é equivalente a 0, e um membro desaparecido difere de um membro presente com null. Substituir um objeto inteiro por uma string é relatado como uma mudança de valor nesse caminho, e não como mudanças em todas as crianças anteriores.
Cada diferença contém caminho e mudança. Os membros adicionados incluem depois, os membros removidos incluem antes e os valores alterados incluem ambos. Caminhos usam texto JSON Pointer sintaxe: slashes e tildes em nomes de membros são escapados como ~1 e ~0. Um caminho vazio denota a raiz quando o documento inteiro muda de tipo ou valor. O relatório é descritivo e não usa o formato JSON Patch; não o execute como uma sequência de instruções para atualizar outro documento. Retenha os dois originais para que você possa repetir a comparação e inspecionar o contexto em torno de cada diferença relatada antes de fazer uma edição em outro lugar.
A análise rejeita chaves duplicadas e inteiros cuja magnitude não pode ser representada com segurança. O JSON usa a precisão numérica do navegador; os sistemas de origem devem usar strings para identificadores longos, enquanto os cálculos decimais exatos exigem um sistema específico de domínio apropriado. Cada documento suporta até um milhão de caracteres e cem níveis de nidificação. Se mais de mil diferenças ocorrerem, a operação pede seções menores em vez de apresentar um relatório incompleto que pareça completo. Antes de revisar uma resposta longa, tente um nome alterado, um membro removido e um array reordenado para entender como esses casos aparecem na saída e quais detalhes permanecem relevantes para sua comparação.
Opções e limites
Cole dois documentos JSON válidos. A ordem de propriedade do objeto é ignorada; a ordem de array importa. Diferenças são identificadas usando JSON Pointer caminhos. Chaves duplicadas e inteiros inseguros são rejeitados. Máximo 1 milhões de caracteres por documento, 100 níveis de nidificação e 1,000 diferenças.
Perguntas frequentes
Um número é igual a uma corda?
Não. O número 1 difere da string "1". Mudanças de indentação não contam como diferenças.