Ir para o conteúdo principal
Bethemesh

Comparador JSON

Compare dois documentos JSON e identifique as diferenças estruturais. O processamento permanece local no navegador.

  • Área de transferência
  • Exportar

Integrar este widget

Personalize o resultado, verifique a pré-visualização e copie o código.

Pré-visualização

Tipo de código de integração

Código a copiar

Responsivo e redimensionado automaticamente pela Bethemesh.

Esta ferramenta foi útil?

Como funciona esta ferramenta?

Compare dois documentos JSON após normalizar apresentação e ordem de propriedades. Uma resposta API numa linha pode equivaler à mesma resposta com outra indentação. Tipos e ordem de arrays continuam relevantes: "1" não é o número 1 e uma lista reordenada é diferente. As duas fontes ficam no navegador. A saída é um relatório textual, não um novo documento JSON nem uma correção aplicável automaticamente.

As duas entradas devem respeitar a sintaxe JSON. O motor analisa valores, ordena recursivamente chaves de objetos e serializa com apresentação comum. Espaços de apresentação e ordem escrita das propriedades deixam de criar diferenças artificiais. Espaços dentro de strings continuam significativos.

Arrays não são ordenados e os objetos não são associados por identificador. Mover uma entrada continua a ser uma diferença. Strings, números, booleanos e null são comparados como valores analisados. Uma chave ausente difere de null. Nomes duplicados seguem a leitura JSON, mantendo a última ocorrência; evite essa representação ambígua.

Se as formas normalizadas diferirem, compara-se cada linha com a mesma posição da outra fonte. - identifica a primeira entrada e + a segunda; linhas comuns começam com espaços. Uma inserção pode deslocar várias linhas e produzir um relatório maior que a alteração lógica mínima. Não é um diff semântico por caminhos nem JSON Patch.

Inteiros fora do intervalo seguro JavaScript e números não finitos são rejeitados para impedir falsas equivalências após arredondamento. Os decimais mantêm os limites de precisão do navegador. Use strings contratuais para identificadores longos e comparação textual para as escritas exatas.

Como usar esta ferramenta

  1. Forneça as duas versões

    Cole ou importe cada documento separadamente. Coloque primeiro a referência para ler - como valor antigo e + como novo.

  2. Execute a comparação normalizada

    Leia a equivalência ou o relatório. A rejeição numérica indica um limite de representação, não uma diferença calculada entre valores.

  3. Reveja o contexto e exporte

    Verifique linhas vizinhas antes de assumir alterações independentes. Copie ou descarregue o relatório .txt. Alterar uma fonte oculta a saída anterior.

Casos de uso

Comparar respostas API

Exclua diferenças de apresentação para analisar valores alterados. Mantenha a ordem quando as posições do array fizerem parte do contrato.

Rever configuração JSON

Compare referência e versão editada sem confundir indentação e dados. Comentários JSON5 não são suportados.

Detetar uma conversão de tipo

Identifique números convertidos em strings ou booleanos substituídos por texto mesmo quando o aspeto é semelhante.

Exemplos

Ignorar a ordem de propriedades

Os objetos têm chaves e valores iguais. A ordem diferente não introduz alterações estruturais após normalização.

Entrada

{"b":2,"a":1}
{"a":1,"b":2}

Resultado

Os documentos JSON são equivalentes.

Distinguir número e string

A linha removida contém um número e a adicionada uma string. As aspas indicam uma mudança real de tipo.

Entrada

{"id":1}
{"id":"1"}

Resultado

  {
-   "id": 1
+   "id": "1"
  }

Dicas e boas práticas

  • Remova campos voláteis apenas se o objetivo o justificar: timestamps não são ignorados automaticamente.
  • Um relatório longo pode resultar de linhas deslocadas. Procure primeiro a divergência inicial.
  • Use o comparador de folhas para associar linhas por chave em vez de posição.
  • Documentos equivalentes podem ambos violar o contrato API. Verifique o esquema separadamente.

Fontes e referências

Perguntas frequentes

Porque são equivalentes ficheiros apresentados de outra forma?

Comparam-se valores após ordenar propriedades e aplicar apresentação comum. Espaços externos e ordem das chaves não mudam um objeto.

Os arrays são comparados ignorando a ordem?

Não. A posição mantém-se significativa. O motor não procura campos id nem associa automaticamente objetos deslocados.

Posso aplicar o relatório como JSON Patch?

Não. Os sinais - e + descrevem um relatório textual sobre documentos normalizados. Não contém operações nem caminhos JSON Patch.

Porque são rejeitados alguns números grandes?

JavaScript poderia arredondar inteiros distintos para o mesmo valor. A rejeição impede essa falsa equivalência. Use strings para identificadores quando o contrato o permitir.

Ferramentas relacionadas

Ferramentas semelhantes ou complementares a esta.

Ferramentas semelhantes

Formate, minifique e valide um documento JSON para o tornar mais legível ou compacto.

DesenvolvimentoEm destaqueUtilizar esta ferramenta

Valide um documento JSON com um esquema e localize precisamente cada erro.

DesenvolvimentoEm destaqueUtilizar esta ferramenta