Regra aplicada

Compara nomes decodificados no mesmo objeto; posições contam unidades UTF-16 a partir de 1.

O problema que JSON.parse pode esconder

Um objeto JSON pode apresentar o mesmo nome de campo duas vezes. O leitor habitual mantém o último valor e perde a evidência do anterior. A análise desta página percorre o texto original para localizar repetições antes que essa perda impeça uma revisão. Ela não presume que o arquivo resultante seja uma campanha válida.

Cole o JSON original, preservando escapes e espaços. Primeiro é exigida sintaxe JSON válida. Depois cada objeto recebe seu próprio conjunto de nomes já vistos; repetir turn em dois objetos diferentes é permitido. Uma repetição no mesmo objeto aparece com caminho JSON Pointer, posição inicial e posição repetida.

Escapes, caminhos e posições

Os nomes são comparados após decodificar escapes JSON. Assim, turn e tu\u0072n identificam a mesma chave. Dentro dos caminhos, uma barra no nome vira ~1 e um til vira ~0, conforme JSON Pointer. Índices de arrays entram como segmentos numéricos para indicar onde fica o objeto analisado.

As posições começam em 1 e usam unidades UTF-16, como os índices de texto de JavaScript. Não são números de bytes UTF-8. Um caractere fora do plano básico pode ocupar duas unidades. O resultado serve para localizar o trecho no texto original, e não para aplicar offsets sobre um arquivo recodificado.

Revisar sem corrigir automaticamente

A ferramenta não decide entre manter o primeiro ou o último valor. Faça uma cópia e confira o contexto de cada repetição antes de editar. Um JSON sem duplicatas ainda pode ter versão errada, UFs ausentes ou recursos fora dos limites; somente quando também passa pelo validador padrão a saída informa essa verificação adicional.

Entradas têm limite de 250 mil caracteres e profundidade máxima de 100 níveis. O botão de leitura do save é explícito; nenhuma campanha é lida ao abrir a página. Não há gravação, restauração ou download de um arquivo supostamente corrigido. JSON inválido interrompe a análise com erro, em vez de mostrar um diagnóstico parcial como completo.

Conferir dois cenários de referência

Cenários controlados para conferir esta regra. Cada resultado é calculado com as entradas explícitas e as demais opções do exemplo inicial.

Backup sem repetição

Entradas alteradas: JSON original para análise lexical = entrada completa de referência descrita no cenário. As demais entradas seguem o exemplo inicial.

0 chaves duplicadas no JSON
Resultado do cenário informado
Caminho JSON PointerPrimeira posiçãoRepetição
Nenhum registro——

Em telas pequenas, deslize a tabela para conferir todas as colunas.

Posições começam em 1 e contam unidades UTF-16 do texto original. Chaves escapadas são comparadas após decodificação; cada objeto tem seu escopo. JSON sintaticamente válido; backup padrão também validado. Não escolhe qual valor manter e não corrige o arquivo.

Chaves escapadas iguais

Entradas alteradas: JSON original para análise lexical = entrada completa de referência descrita no cenário. As demais entradas seguem o exemplo inicial.

1 chaves duplicadas no JSON
Resultado do cenário informado
Caminho JSON PointerPrimeira posiçãoRepetição
/turn211

Em telas pequenas, deslize a tabela para conferir todas as colunas.

Posições começam em 1 e contam unidades UTF-16 do texto original. Chaves escapadas são comparadas após decodificação; cada objeto tem seu escopo. JSON sintaticamente válido; esta análise não certifica backup restaurável. Não escolhe qual valor manter e não corrige o arquivo.

Simulação independente: as informações descrevem o jogo ficcional República em Disputa, sem avaliação de pessoas reais ou previsão de uma eleição.

Verificação editorial

Regras, dados e exemplos conferidos na versão do jogo em 17 de outubro de 2026. Simulação ficcional e independente, sem previsão eleitoral real. Guia Independente · Relatar divergência.