Comparador de Texto: Diff de Texto, JSON e Código

Compare dois textos, JSON ou trechos de código no navegador e veja linhas adicionadas, removidas e alteradas. Ignora espaços e maiúsculas. 100% local.

Revisão técnica: Cesar Gargiulo (segurança da informação)
Valim, o mascote do ValorFinal, representando a categoria Tecnologia

Processamento 100% local no seu navegador. Nenhum dado, texto, arquivo ou senha é enviado para servidor.

Opções da comparação

A comparação é textual, linha a linha, e não diz se dois JSON significam a mesma coisa: as mesmas chaves em ordem diferente são iguais no significado e diferentes no texto. Quando os dois lados forem JSON válido, a conferência de significado aparece junto do resultado.

Gostou? Mostre pra todo mundo

Gere um card bonito com a marca do ValorFinal para postar nos Stories ou mandar no WhatsApp. Nada que você digitou aparece no card.

Coloque no seu site

Cole o texto A e o texto B e clique em Comparar. As linhas adicionadas, removidas e alteradas são destacadas, com contagem de cada tipo. Tudo local no navegador.

Como funciona o cálculo

A ferramenta divide os dois textos em linhas e acha o caminho de edição mais curto entre eles pelo algoritmo de Myers com espaço linear, o mesmo princípio dos diffs de controle de versão. Linhas presentes só no B são adicionadas, só no A são removidas, e um bloco de remoções seguido de um bloco de adições é pareado linha a linha e vira linha alterada.

As duas opções de tolerância ficam à vista antes de comparar: ignorar espaços (espaço repetido, tabulação e espaço nas pontas deixam de contar) e ignorar maiúsculas e minúsculas. A linha aparece sempre como você escreveu; a tolerância vale só para decidir se ela mudou.

Uma diferença importante: comparação de texto não é equivalência de significado. Dois JSON com as mesmas chaves em ordem diferente dizem a mesma coisa e mesmo assim são textos diferentes. Por isso, quando os dois lados são JSON válido, a página responde também se as chaves e os valores batem, ignorando ordem e formatação.

Para padronizar a entrada antes de comparar, use o formatador de código ou o validador de JSON.

Base: algoritmo de Myers (An O(ND) Difference Algorithm and Its Variations, 1986), na variante de espaço linear. Comparação local no navegador.

Limitações

  • A comparação é por linha, não por palavra ou caractere.
  • O limite é de 200.000 caracteres por lado. Acima disso o texto é cortado, e a página diz que cortou.
  • Diferença de texto não é diferença de significado. Em JSON, a ordem das chaves muda o texto sem mudar o conteúdo, e é por isso que a conferência de significado aparece separada.
  • Não faz merge nem resolve conflitos, apenas mostra as diferenças.

Guia completo

Como comparar textos e JSON: diferenças, linhas alteradas e revisão

Entenda como comparar textos, JSON e trechos de código, o que significam linhas adicionadas, removidas e alteradas, quando ignorar espaços e maiúsculas, e como evitar erros em revisão técnica.

Coloque a calculadora de Comparador de Texto no seu site, de graça

Tem site, blog ou loja virtual? Esta calculadora tem uma versão para incorporar: você copia um código e cola no seu HTML. Sem cadastro, sem mensalidade e sem limite de acessos, e o cálculo acompanha a regra vigente sozinho.

calculadora de Comparador de Texto para sitever todas as calculadoras para site

Calculadoras relacionadas

Guias sobre este tema

ValorFinal VIP: Sem anúncios, até 500 cenários salvos e comparação de cenários lado a lado.

Cálculo auditável, com fórmula e fontes transparentes

Atualizado em . Fontes: Algoritmo LCS / matemática de sequências.

Processamento local: esta ferramenta roda no seu navegador e nada é enviado a servidores automaticamente.

Como validamos

Referências técnicas

Links externos para o que foi consultado na construção desta página, com a natureza de cada fonte identificada. O conteúdo delas pode mudar sem aviso; em caso de divergência, vale sempre a fonte primária.

Incorpore esta calculadora no seu site (grátis)

Copie e cole o código no seu site. A calculadora se atualiza sozinha. O crédito ao ValorFinal vem junto do código e a gente agradece quem mantém, mas ele é opcional: pode remover sem perder o widget. O link sai com rel="nofollow", ou seja, não transfere autoridade de busca para a gente.

Perguntas frequentes

O que esta ferramenta compara?

Dois textos quaisquer, linha a linha: pode ser texto comum, JSON, logs ou trechos de código. Ela mostra quais linhas foram adicionadas, removidas e alteradas entre a versão A e a versão B.

Os textos comparados vão para algum servidor?

Não. A comparação é feita no seu navegador, sem enviar nada para servidor. É seguro comparar conteúdo interno, desde que você confie no dispositivo em uso.

Como funciona a opção de formatar JSON antes de comparar?

Quando marcada, cada lado é interpretado como JSON e reescrito com a mesma indentação antes da comparação. Isso tira da frente as diferenças que são só de espaçamento. Ela não reordena chave nenhuma: a ordem das chaves continua aparecendo como diferença de texto. Se o texto não for JSON válido, ele é comparado como está.

O que significam adicionada, removida e alterada?

Adicionada é uma linha que existe só no texto B. Removida existe só no texto A. Alterada é quando uma linha do A foi substituída por uma do B na mesma posição. Linhas iguais aparecem sem marcação.

Posso ignorar diferenças de espaço ou de maiúsculas?

Sim. Há opções para ignorar espaços em branco e para ignorar a diferença entre maiúsculas e minúsculas. Isso é útil para comparar conteúdo cuja formatação não importa.

Qual algoritmo é usado?

O algoritmo de Myers com espaço linear, o mesmo princípio dos diffs de controle de versão. Ele acha o caminho de edição mais curto entre os dois lados guardando duas fitas de inteiros, em vez da tabela inteira de comparações, e por isso dá conta de dezenas de milhares de linhas sem consumir a memória do navegador. Em seguida, um bloco de remoções seguido de um bloco de adições é pareado linha a linha e mostrado como linha alterada.

Comparar dois JSON aqui prova que eles são iguais?

Prova que o texto é igual, que é outra coisa. Dois JSON com as mesmas chaves em ordem diferente significam exatamente a mesma coisa para qualquer programa que os leia, e mesmo assim aparecem como linhas diferentes aqui, porque a comparação é textual. Por isso, quando os dois lados são JSON válido, a página mostra junto uma conferência de significado: ela diz se as chaves e os valores batem, ignorando ordem, espaço e indentação.

Existe limite de tamanho?

Sim: 200.000 caracteres por lado, o que dá dezenas de milhares de linhas. Se você colar mais que isso, a página avisa que cortou e compara o trecho que coube, em vez de fingir que analisou tudo.