Todos os guias
Dados

Encontre chaves JSON duplicadas antes que um parser as descarte

A formatação pode esconder uma chave duplicada. Encontre ambas as definições antes de escolher qual valor manter.

Este JSON parece pequeno o suficiente para verificar manualmente:

{
  "theme": "light",
  "theme": "dark"
}

Mas qual tema um aplicativo deve usar? Um formatador que analisa o objeto e o imprime novamente pode deixar apenas um valor, escondendo o conflito antes que você perceba.

Sintaxe válida não resolve uma duplicata

O padrão JSON diz que os nomes dentro de um objeto devem ser únicos. Nomes duplicados podem se encaixar na gramática, mas os receptores não os tratam todos da mesma forma: alguns mantêm o último valor, alguns rejeitam o objeto e outros expõem ambos.

JavaScript mantém o último neste exemplo:

JSON.parse('{"theme":"light","theme":"dark"}').theme
// "dark"

Isso é o comportamento do parser, não uma evidência de que o segundo valor está correto. Para arquivos de configuração, o primeiro valor pode ser o que você pretendia manter.

Encontre ambas as definições antes de editar

Baixe a amostra de chave duplicada e abra-a no formatador JSON do CozyToolkit.

  1. Use Abrir JSON ou cole o exemplo em Seu JSON.
  2. Procure o campo destacado e a lista de problemas abaixo dos editores. Esta amostra sinaliza a segunda chave na linha 3, coluna 3.
  3. Selecione o problema para ir até ele. Mostrar primeira definição leva você à linha 2, coluna 3.
  4. Compare os valores com a fonte da verdade: sua configuração, esquema da API ou exportação original. Mantenha uma cópia antes de alterar qualquer coisa; Copiar bruto preserva a entrada como foi inserida.
  5. Remova a propriedade não intencional. Depois que os problemas forem resolvidos, revise a saída e use Copiar formatado ou Baixar.

O formatador bloqueia deliberadamente a saída formatada enquanto houver chaves duplicadas. Ordenar chaves ou alterar a indentação não pode resolver a ambiguidade.

Para este exemplo, suponha que o modo escuro seja a configuração pretendida. O arquivo corrigido contém apenas essa propriedade. Nós o escolhemos explicitamente; a ferramenta não decidiu por nós.

O mesmo nome em objetos separados é válido

Estas duas propriedades pertencem a objetos diferentes:

{
  "editor": { "theme": "light" },
  "preview": { "theme": "dark" }
}

Não há duplicata dentro de nenhum dos objetos. Uma pesquisa de texto pela palavra “theme” encontra duas correspondências, mas isso não é suficiente para diagnosticar uma chave duplicada. Experimente o arquivo de objetos separados no formatador: ele não deve ter problemas.

Se você realmente precisar de vários valores, um array pode ser apropriado—mas somente se o aplicativo que recebe o JSON esperar um array. Renomear uma chave ou alterar o tipo de um valor apenas para limpar um erro pode quebrar o contrato desse aplicativo.

Nomes escapados podem esconder o mesmo problema

Este objeto tem duas grafias da mesma chave decodificada:

{"theme":"light","\u0074heme":"dark"}

O escape representa a letra t. Após a decodificação, ambos os nomes são theme. Nosso inspetor também sinaliza isso. Baixe a amostra de chave escapada se quiser verificar.

Para uma exportação grande, use um verificador que entenda o parser em vez de procurar palavras repetidas. Nossa ferramenta suporta arquivos de até 5 MB, com limites de 200.000 valores e 100 níveis de aninhamento. Se ela atingir o limite de exibição de 100 problemas, corrija os problemas relatados e deixe-a verificar novamente. Para arquivos além desses limites, use um validador de streaming local que detecte explicitamente duplicatas antes de descartá-las.

O que um resultado limpo indica

Nenhum erro de chave duplicada significa que essa ambiguidade específica desapareceu. Isso não prova que um preço, permissão, URL ou valor de configuração está correto. Verifique-os contra o esquema e o aplicativo que usará o arquivo.

Em 1º de outubro de 2026, executamos todas as quatro amostras para download no mesmo inspetor da ferramenta. Verificamos as posições de linha e coluna, confirmamos que duplicatas bloqueiam a formatação e confirmamos que as amostras corrigida e de objetos separados passam. Os resultados do teste incluem essas verificações e o resultado da análise do JavaScript. A inspeção acontece no seu navegador; nenhum modelo de IA escolhe quais valores manter.