Comparador de Texto / JSON

Compare textos ou ficheiros JSON lado a lado e identifique exatamente o que mudou.

Original
Modificado
Diferenças
Pronto. Cole ambas as versões para comparar.

O seu texto e JSON são comparados diretamente no seu navegador. Nada é enviado para o BroBroGo.

Perguntas Frequentes

Qual é a diferença entre o modo de texto e o modo JSON?

O modo de texto compara o conteúdo bruto por linha ou palavra. O modo JSON analisa primeiro ambos os lados, formata-os de maneira consistente e lista os caminhos alterados, como $.user.email.

A ferramenta suporta entradas muito grandes?

As comparações lentas são interrompidas após 2,5 segundos. Os textos colados acidentalmente que sejam muito grandes são limitados para que a página continue responsiva.

O modo JSON ignora a ordem das chaves dos objetos?

A lista estruturada de alterações compara as chaves dos objetos pelo nome, pelo que a ordem das chaves por si só não é reportada como uma alteração semântica. As matrizes (arrays) são comparadas por posição.

O conceito de comparação de dados e a sua utilidade

A comparação de dados, comummente designada por "diff", é o processo de identificar discrepâncias estruturais ou textuais entre duas versões de um mesmo conteúdo. Esta operação é fundamental em fluxos de trabalho técnicos e administrativos, permitindo rastrear revisões, validar alterações de código e auditar ficheiros de configuração.

Ao comparar uma versão original com uma versão modificada, o objetivo consiste em isolar com precisão o que foi acrescentado, o que foi removido e o que sofreu alterações. A realização desta tarefa de forma manual é propensa a erros, especialmente em volumes de dados extensos. A automatização do processo garante que nenhuma modificação passe despercebida, fornecendo um registo claro e acionável das diferenças detetadas.

Comparação de texto por linhas e palavras

No modo de texto, a análise de diferenças pode ser ajustada de acordo com o nível de detalhe pretendido através da granularidade. A ferramenta opera com dois níveis distintos de comparação:

  • Linhas: O algoritmo analisa o texto linha por linha. É o método ideal para comparar código-fonte, listas de dados ou documentos estruturados onde cada linha representa uma instrução ou item independente.
  • Palavras: A análise é realizada ao nível da palavra individual. Este ajuste é mais adequado para textos em prosa, artigos ou documentação, onde as alterações ocorrem frequentemente a meio de uma frase e exigem uma identificação mais cirúrgica.

Para demonstrar o funcionamento, a ferramenta disponibiliza um exemplo de texto. O conteúdo original é:

As ferramentas do BroBroGo são executadas no seu navegador.
São rápidas, privadas e simples.
Use-as quando precisar de uma verificação rápida.

Após a modificação, o texto passa a apresentar a seguinte redação:

As ferramentas do BroBroGo são executadas no seu navegador.
São rápidas, privadas e focadas.
Use-as quando precisar de uma comparação rápida.

Ao processar esta alteração, o comparador identifica as substituições específicas das palavras "simples" por "focadas" e "verificação" por "comparação".

Estrutura e semântica na comparação de JSON

A comparação de ficheiros JSON (JavaScript Object Notation) difere da comparação de texto simples porque o JSON é um formato de dados estruturado. No modo JSON, a ferramenta analisa e formata o conteúdo de forma consistente antes de efetuar a validação, permitindo mapear as alterações através de caminhos estruturais específicos.

Existem regras semânticas cruciais na forma como os dados são interpretados:

  • Objetos e chaves: Os objetos em JSON são coleções de pares chave-valor não ordenadas. No modo JSON, as chaves dos objetos são comparadas pelo nome. Isto significa que se a única diferença entre dois objetos for a ordem em que as chaves aparecem, o comparador não reportará uma alteração semântica.
  • Matrizes (arrays): As matrizes são coleções ordenadas de valores. Por esta razão, as matrizes são comparadas estritamente pela sua posição. Se a ordem dos elementos numa matriz for alterada, isso será identificado como uma modificação estrutural.

O exemplo de JSON original fornecido pela ferramenta é:

{
 "name": "BroBroGo",
 "plan": "free",
 "tools": ["json", "regex", "hash"],
 "private": true
}

O JSON modificado correspondente é:

{
 "name": "BroBroGo",
 "plan": "free",
 "tools": ["json", "regex", "diff"],
 "private": true,
 "updated": 2026
}

Neste cenário, a ferramenta identifica que o terceiro elemento da matriz "tools" mudou de "hash" para "diff" e que foi adicionada uma nova chave "updated" com o valor 2026. Se não existirem divergências entre os valores analisados, o sistema apresenta a mensagem "Nenhuma alteração de valor JSON encontrada".

Processamento local e privacidade dos dados

A segurança da informação é um fator crítico ao lidar com dados sensíveis, tais como credenciais de configuração, dados de clientes ou respostas de APIs de produção.

O processamento desta ferramenta ocorre inteiramente no navegador do utilizador. O texto e o JSON introduzidos não são enviados para servidores externos nem são guardados pelo BroBroGo. Toda a computação necessária para analisar as diferenças, formatar o JSON e gerar os relatórios de alterações é executada localmente pelo motor de JavaScript do próprio navegador.

Gestão de limites e tratamento de erros

Para garantir que a interface permanece fluida e responsiva, existem limites operacionais e mecanismos de salvaguarda integrados no sistema:

  • Limites de caracteres: Cada um dos campos de entrada ("Original" e "Modificado") está limitado a um máximo de 300 000 caracteres. Se este limite for excedido, surge o aviso "Essa entrada é grande demais para esta ferramenta. Tente uma comparação menor.".
  • Tempo limite (Timeout): Algoritmos de comparação em textos muito complexos podem exigir um esforço computacional elevado. Se a comparação demorar mais de 2,5 segundos, o processo é interrompido e é exibida a mensagem "Esta comparação está a demorar muito tempo. Tente uma entrada menor ou use o modo de linhas.".
  • Resultados limitados: Em situações de grande volume de dados, a ferramenta pode optar por apresentar uma versão truncada do resultado para evitar o bloqueio da página, exibindo o alerta "A apresentar um resultado limitado para que a página continue responsiva.".
  • Erros de validação: Se o conteúdo introduzido para comparação de JSON não respeitar a sintaxe correta do formato, o utilizador será alertado com "O JSON da esquerda é inválido:" ou "O JSON da direita é inválido:", seguido do erro técnico correspondente. Em caso de falha genérica no algoritmo de correspondência, a interface exibe "Não foi possível comparar estas entradas.".

Perguntas Frequentes

Qual é a diferença entre o modo de texto e o modo JSON?
O modo de texto compara o conteúdo bruto por linha ou palavra. O modo JSON analisa primeiro ambos os lados, formata-os de maneira consistente e lista os caminhos alterados, como $.user.email.

A ferramenta suporta entradas muito grandes?
As comparações lentas são interrompidas após 2,5 segundos. Os textos colados acidentalmente que sejam muito grandes são limitados para que a página continue responsiva.

O modo JSON ignora a ordem das chaves dos objetos?
A lista estruturada de alterações compara as chaves dos objetos pelo nome, pelo que a ordem das chaves por si só não é reportada como uma alteração semântica. As matrizes (arrays) são comparadas por posição.

Como posso inverter rapidamente os textos que introduzi?
A ferramenta possui uma função para inverter os lados esquerdo e direito. Ao acionar esta opção, os conteúdos são trocados instantaneamente e a interface exibe a mensagem "Lados esquerdo e direito invertidos".