Corrigir problemas comuns em texto JSON

Cole texto semelhante a JSON para aplicar um conjunto fixo de regras e ler cada alteração aplicada. A reparação nunca executa a entrada, nada é enviado e, se o texto continuar sem ser analisado, o erro do analisador aparece em vez de um palpite.

Funciona localmente no seu navegador
O reparador nunca avalia código. Ele aplica somente transformações limitadas e verificáveis no navegador.
Entrada inválida ou semelhante a JSON

O reparo seguro é intencionalmente limitado

A ferramenta trata comentários, vírgulas finais, aspas simples, chaves sem aspas, aspas tipográficas e literais comuns. Nunca executa JavaScript, inventa dados ou oculta erro não reparado.

Como reparar texto semelhante a JSON

Cole texto semelhante a JSON e a página aplica um conjunto fixo e ordenado de regras — comentários, vírgulas finais, aspas simples, chaves sem aspas, aspas tipográficas, True/False/None e números não finitos — listando cada alteração feita. Nada é reparado por palpite: se o resultado ainda não puder ser analisado, a execução falha em vez de devolver um documento plausível.

Toda a reparação é uma transformação de texto seguida de um JSON.parse estrito, então a entrada nunca é executada e a página não envia nenhuma requisição enquanto você trabalha. O conteúdo das strings fica intacto: uma URL http://, um marcador /* */ ou um apóstrofo tipográfico dentro de um valor entre aspas sobrevive à execução.

  1. Cole a entrada no painel esquerdo. As regras só são executadas quando você clica em Reparar JSON.
  2. Clique em Reparar JSON. Se a entrada já for válida, isso é informado e ela volta com indentação de dois espaços; caso contrário, cada regra aplicada aparece em Correções aplicadas na ordem em que rodou.
  3. Leia a lista de correções e compare a saída com a sua intenção: a troca de literais (True por true, NaN por null) é a regra que muda valores de propósito.
  4. Use Copiar para levar o JSON reparado; depois de uma falha, o status avisa que o texto copiado ainda é inválido. Limpar esvazia os dois painéis e a lista de correções.

O que o reparador muda e o que não muda

Regras executadas, em ordem

Remoção de BOM, normalização de aspas tipográficas, remoção de comentários, conversão de aspas simples, citação de chaves sem aspas, troca de literais e remoção de vírgulas finais rodam nessa ordem fixa e apenas fora de strings. Os comentários cobrem // e /* */ do JavaScript e também linhas # no estilo Python; chaves podem começar com letra, _ ou $ e conter caracteres não ASCII, como japoneses; vírgulas finais repetidas como [1,,] são removidas até o fechamento ficar limpo.

Como as regras ignoram o conteúdo das strings, marcadores dentro dos dados sobrevivem: http://x, /* keep */ ou #fff escritos dentro de uma string entre aspas saem intactos, e um apóstrofo tipográfico em um valor continua tipográfico. Aspas tipográficas só são convertidas quando fazem o papel de delimitadores de uma chave ou string.

O que ele não tenta adivinhar

Valores ausentes e arquivos truncados não são reparados. Entradas como {"a": } (sem valor), {"a": [1, 2 (array sem fechar), {a: .5} (ponto decimal inicial) ou {a: 0x1F} (número hexadecimal) terminam com o erro do analisador e o texto parcialmente transformado à mostra para revisão — esse painel não é um resultado, e o Copiar avisa isso.

NaN, Infinity e -Infinity viram null, porque JSON não tem como representar números não finitos, e True/False/None viram true/false/null. Revise essas substituições antes de entregar o documento a um consumidor que espere um número ou um booleano.

Onde uma execução bem-sucedida ainda pede revisão

Um status verde só prova que o texto agora é analisável; não prova que os dados são o que você queria. Chaves duplicadas mantêm o último valor, cada reescrita fica registrada apenas na lista de correções e a saída é sempre reindentada com dois espaços — compare com o original antes de sobrescrever uma configuração ou um fixture.

Tudo acontece nesta aba: a página não faz nenhuma requisição enquanto você repara e nenhuma cópia da entrada é armazenada. Guarde o texto original até terminar a comparação e use Limpar para tirar a cópia de trabalho da página.

Ferramentas recentes: