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

Expected property name or '}' in JSON at position N (line L column C)

O parser abriu um objeto e esperava ou uma chave entre aspas duplas ou a chave de fechamento. Recebeu outra coisa. Em dados reais, essa outra coisa é quase sempre uma aspa simples ou um identificador solto, o que significa que o texto é o repr de um dict do Python ou um literal de objeto do JavaScript, e não JSON.

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 Chaves com aspas simples, de um dict do Python impresso com str()

    print(meu_dict) e str(meu_dict) produzem sintaxe do Python, não JSON: aspas simples, e True, False e None em vez de true, false e null. Use json.dumps para produzir JSON.

    Quebra

    {'name': 'Priya', 'active': True}

    Funciona

    {"name": "Priya", "active": true}
  2. 02 Chaves sem aspas, de um literal de objeto do JavaScript

    O JavaScript aceita identificadores soltos como chaves. O JSON não, nem quando a chave seria um identificador perfeitamente válido.

    Quebra

    { name: "Priya", role: "admin" }

    Funciona

    { "name": "Priya", "role": "admin" }
  3. 03 Um comentário dentro de um arquivo de configuração

    O JSON não tem sintaxe de comentário. Um // ou um /* dentro de um objeto cai aqui.

  4. 04 Aspas tipográficas vindas de um processador de texto

    O corretor automático do Word, do Google Docs, do Notas e de vários clientes de chat converte aspas retas em curvas. Para um parser JSON, aspas curvas são caracteres comuns, não delimitadores de string. O nosso validador nomeia essas aspas especificamente em vez de reportar um token inesperado genérico.

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 Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
Java (Jackson) Unexpected character ('s' (code 115)): was expecting double-quote to start field name

Perguntas frequentes

Como produzo JSON a partir de um dict do Python do jeito certo?
json.dumps(obj) devolve uma string JSON. str(obj) e print(obj) devolvem sintaxe do Python que só se parece. Essa é uma das fontes mais comuns de JSON inválido que existem.
Dá para converter o repr de um dict do Python para JSON?
Dá. ast.literal_eval faz o parsing com segurança para um objeto Python, que você depois passa pelo json.dumps. A nossa ferramenta de reparo faz o mesmo trabalho no navegador, convertendo as aspas simples e os literais True, False e None em uma passada só.

Conserte agora

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

Converter em JSON válido