JSON Formatter + Tree Viewer

Validar Sintaxe JSON: Validador JSON Online

Cole JSON e veja instantaneamente se ele é analisado corretamente. Detecta erros comuns de sintaxe: vírgula final, aspas simples, chaves sem aspas, parênteses faltantes.

100% no navegador. Seus dados nunca saem do seu computador.

Carregando editor...

Carregando editor...

Ferramentas Relacionadas

O Erro de Sintaxe Neste Exemplo

A entrada anterior é quase JSON válido. O problema é a vírgula final depois de false no segundo objeto de usuário:

{"name": "Bob", "active": false,}

Remova essa vírgula é o documento se torna válido:

{
  "users": [
    {"name": "Alice", "active": true},
    {"name": "Bob", "active": false}
  ]
}

Este é o erro JSON mais comum que desenvolvedores enfrentam, e é fácil não perceber porque JavaScript o tolera.

O Que Torna o JSON Válido

A sintaxe JSON é definida pela RFC 8259. As regras são mais simples do que a maioria espera. Um documento JSON válido é um de: um objeto, um array, uma string, um número, um booleano (true ou false) ou null. Objetos são coleções de pares chave-valor. Chaves devem ser strings (com aspas duplas). Valores podem ser qualquer valor JSON. Arrays são listas ordenadas de valores JSON.

Regras estruturais que mais pegam os desenvolvedores:

Vírgulas finais

O último elemento de um array ou o último par chave-valor de um objeto não deve ter vírgula final. [1, 2, 3,] é inválido. {"a": 1, "b": 2,} é inválido.

Aspas em strings

Todas as strings devem usar aspas duplas. 'Alice' não é JSON válido. "Alice" é.

Aspas em chaves

Chaves de objeto devem ser strings com aspas. {name: "Alice"} não é JSON. {"name": "Alice"} é.

Sem comentários

JSON não tem sintaxe de comentários. // comentário e /* comentário */ causam erro de análise. Issó surpreende quem vem de linguagens que suportam comentários em arquivos de configuração.

Valores float especiais

NaN, Infinity e -Infinity não são valores JSON válidos. Se você tentar serializar NaN para JSON com JSON.stringify(), obtém null. O json.dumps() do Python lança ValueError por padrão.

Os 5 Erros de Sintaxe JSON Mais Comuns

ErroExemploCorreção
Vírgula final{"a": 1,}{"a": 1}
Strings com aspas simples{'key': 'value'}{"key": "value"}
Chaves sem aspas{key: "value"}{"key": "value"}
Comentários{"a": 1 // nota}Remova comentários
NaN ou undefined{"val": NaN}Substitua por null

Validando JSON na Linha de Comando

Para válidação rápida sem navegador, jq é a ferramenta padrão. Ele sai com código não zero se a entrada for JSON inválido, o que o torna útil em scripts.

Validar um arquivo:

jq . file.json

Validar uma string:

echo '{"name": "Alice",}' | jq .
# parse error (Expected another key-value pair or '}')

A biblioteca padrão do Python também válida sem dependências:

python3 -m json.tool file.json

Para pipelines de CI, ambas as ferramentas funcionam como etapas de válidação que falham ruidosamente em entrada malformada.

JSON vs JSONC vs JSON5

FormatoComentáriosVírgulas finaisAspas simplesCasó de usó
JSONNãoNãoNãoTroca de dados, APIs
JSONCSimSimNãoArquivos de config (VS Code)
JSON5SimSimSimArquivos de config (Babel, ESLint)

Se você está construindo uma API ou escrevendo dados que serão analisados por uma biblioteca, use JSON estrito. Se você está escrevendo um arquivo de configuração que uma ferramenta específica lê, verifique qual formato essa ferramenta espera. Misturá-los é uma fonte comum de falhas silenciosas quando arquivos de configuração são passados para analisadores padrão.

A Especificação

RFC 8259 é a especificação JSON atual, publicada em 2017. Ela substituiu a RFC 7159. A especificação é legível em cerca de 20 minutos e vale a pena folhear uma vez. Define a gramática formalmente, cobre precisão numérica e específica a codificação UTF-8. Um ponto chave da especificação: um analisador JSON pode aceitar ou rejeitar chaves duplicadas em um objeto. A maioria dos analisadores as aceita e usa o último valor, mas o comportamento é indefinido e você não deve confiar nisso.