Ir para o conteúdo
jsonbeautifiers
Português
V8 Verificado rodando o parser em Node v24.15.0, V8 13.6.233.17.

Bad escaped character in JSON at position N (line L column C)

O JSON permite exatamente nove sequências de escape: \" \\ \/ \b \f \n \r \t e \uXXXX. Qualquer outra coisa depois de uma barra invertida é erro. Uma barra invertida sozinha em um caminho do Windows é quase sempre a causa, porque \U, \P e \D não são escapes.

Cole o seu JSON e veja exatamente onde ele quebra

Entrada

Nada do que você cola sai do seu navegador. A lista de permissões connect-src transforma isso em uma garantia do navegador, e não em uma promessa. Confira você mesmo

O que realmente causa isso

Ordenados por quantas vezes cada um acaba sendo a resposta.

  1. 01 Um caminho de arquivo do Windows com barras invertidas simples

    Esta é a causa dominante. Toda barra invertida dentro de uma string JSON precisa ser dobrada. Barras normais também funcionam no Windows na maioria dos contextos e evitam o problema por completo.

    Quebra

    { "path": "C:\Users\priya\config.json" }

    Funciona

    { "path": "C:\\Users\\priya\\config.json" }
  2. 02 Um escape hexadecimal emprestado de outra linguagem

    O JSON não tem o escape \x. C, Python e JavaScript aceitam \x41 para a letra A; o JSON exige \u0041.

    Quebra

    { "c": "\x41" }

    Funciona

    { "c": "\u0041" }
  3. 03 Uma expressão regular colada dentro de uma string

    Padrões como \d, \s e \w não são escapes do JSON. Toda barra invertida do padrão precisa ser dobrada antes de entrar em uma string JSON.

    Quebra

    { "pattern": "^\d{3}-\d{4}$" }

    Funciona

    { "pattern": "^\\d{3}-\\d{4}$" }
  4. 04 Um escape de aspas simples

    \' é válido em JavaScript e em JSON5 mas não em JSON. Dentro de uma string com aspas duplas, um apóstrofo não precisa de escape nenhum.

O mesmo erro em outros runtimes

O problema de fundo é idêntico; só muda a redação. Se um colega reportar uma dessas mensagens, ele está olhando exatamente para a mesma coisa que você.

Python Invalid \escape: line 1 column 9 (char 8)

Perguntas frequentes

Por que a minha string em Python parece certa e mesmo assim falha?
Porque a barra invertida é consumida duas vezes: uma pelo literal de string do Python e outra pelo JSON. Use uma raw string para o literal, ou monte o objeto e chame json.dumps em vez de escrever JSON à mão.
\/ é permitido mesmo?
É. Escapar uma barra normal é opcional em JSON e as duas formas significam o mesmo caractere. Isso existe para que JSON possa ser embutido com segurança dentro de uma tag script no HTML, onde a sequência </ encerraria o elemento.

Conserte agora

Cole o payload na ferramenta acima, ou vá direto para a que foi feita para este trabalho.

Escapar uma string corretamente