JSON (JavaScript Object Notation) é deliberadamente minimalista, mas esse minimalismo vem com regras estritas. Diferente dos objetos JavaScript — que os parsers tratam de forma flexível — o JSON segue o RFC 8259 exatamente, sem tolerância para atalhos comuns do JavaScript. O resultado é que JSON copiado ou gerado a partir de código JavaScript frequentemente contém erros que um parser JSON irá rejeitar.

Quando você encontrar um erro de parse JSON, a mensagem de erro geralmente indica a linha e coluna do problema. Use o Validador JSON para localizá-lo rapidamente.

Erro 1: Vírgula final (trailing comma)

Uma vírgula final aparece após o último elemento de um array ou o último par chave-valor de um objeto. Isso é permitido em JavaScript mas proibido em JSON.

// JSON Inválido — vírgula final após "editor"
{
  "cargos": ["admin", "editor",]
}
// JSON Válido
{
  "cargos": ["admin", "editor"]
}

Erro 2: Aspas simples em vez de duplas

JSON exige aspas duplas para todas as chaves e valores de string. Aspas simples são válidas em JavaScript mas inválidas em JSON.

// JSON Inválido
{'nome': 'Alice', 'cidade': 'São Paulo'}
// JSON Válido
{"nome": "Alice", "cidade": "São Paulo"}

Este erro é comum ao copiar um objeto JavaScript diretamente para JSON, ou ao escrever JSON manualmente em Python ou Ruby, onde aspas simples são o delimitador padrão.

Erro 3: Chaves sem aspas

Em JavaScript, as chaves de objeto não precisam de aspas se forem identificadores válidos. Em JSON, toda chave deve ser uma string entre aspas duplas.

// JSON Inválido
{nome: "Alice", idade: 30}
// JSON Válido
{"nome": "Alice", "idade": 30}

Erro 4: Comentários

JSON não suporta comentários. Nem // linha única nem /* bloco */ são válidos.

// JSON Inválido — comentários não permitidos
{
  // Configuração do servidor
  "host": "localhost",
  "porta": 8080 /* porta padrão */
}
// JSON Válido
{
  "host": "localhost",
  "porta": 8080
}

Se precisar de comentários em arquivos de configuração, use JSONC (suportado pelo VS Code) ou JSON5.

Erro 5: Valores inválidos (undefined, NaN, Infinity)

JSON suporta exatamente seis tipos de valor: string, number, object, array, true, false e null. Valores específicos do JavaScript não são permitidos.

// JSON Inválido
{"pontuacao": NaN, "razao": Infinity, "valor": undefined}
// JSON Válido — use null ou um substituto numérico
{"pontuacao": null, "razao": null, "valor": null}

Erro 6: Colchetes e chaves sem fechamento

Todo { precisa de um } correspondente, e todo [ precisa de um ]. Se o validador apontar para o final do arquivo com "fim inesperado de entrada", um colchete de fechamento ausente é a causa mais provável. Cole o JSON no Formatador JSON primeiro para ver a estrutura e encontrar o desequilíbrio.

Erro 7: Caracteres especiais sem escape

Certos caracteres dentro de uma string JSON devem ser escapados com barra invertida. Os que precisam de escape: aspas duplas (\"), barra invertida (\\), e caracteres de controle (nova linha como \n, tab como \t).

// JSON Inválido — barra invertida sem escape
{"caminho": "C:\Users\Alice"}
// JSON Válido — barras invertidas duplicadas
{"caminho": "C:\\Users\\Alice"}

Como encontrar e corrigir erros JSON rapidamente

  1. Cole o JSON no Validador JSON — ele reporta a linha e coluna exatas do primeiro erro.
  2. Se a localização do erro não estiver clara, cole o JSON no Formatador JSON primeiro para visualizar a estrutura.
  3. Corrija o erro reportado pelo validador. Se houver múltiplos erros, os parsers param no primeiro — corrija-os em sequência.
  4. Revalide até que o JSON esteja correto.

Valide seu JSON — grátis

Cole seu JSON e veja a linha e coluna exatas do erro instantaneamente. Sem cadastro.

Abrir Validador JSON →

Perguntas Frequentes

Por que meu JSON tem erro de vírgula final?

JSON padrão (RFC 8259) não permite vírgulas finais após o último elemento de um array ou objeto. Remova a vírgula após o último item. Se precisar de vírgulas finais em arquivos de configuração, considere JSON5 ou JSONC.

JSON pode usar aspas simples?

Não. JSON exige que todas as chaves e valores de string usem aspas duplas. Aspas simples são válidas em objetos JavaScript mas não são permitidas em JSON.

JSON pode ter comentários?

Não. Comentários não fazem parte da especificação JSON (RFC 8259). Se precisar de comentários em arquivos de configuração semelhantes a JSON, use JSON5 ou JSONC, que permitem comentários // e /* */.

Quais valores são permitidos em JSON?

JSON permite seis tipos de valor: string (entre aspas duplas), number (decimal, sem hex ou zeros à esquerda), boolean (true ou false, minúsculos), null, object e array. Valores do JavaScript como undefined, NaN e Infinity não são JSON válido.