Validador JSON

Cole qualquer documento JSON e veja se ele é analisado corretamente de acordo com o RFC 8259. Entradas inválidas retornam com o problema exato, vírgula final após o último item do array, chave não entre aspas, string não terminada, aspas simples onde o JSON exige aspas duplas, sequências de escape ruins, além da linha e coluna onde o analisador desistiu. Útil ao depurar uma resposta de API, um arquivo de configuração, um package.json editado manualmente por um colega ou a saída de um gerador de código.

Como funciona a validação JSON

  1. 1

    Cole seu JSON

    Insira um payload, um arquivo de configuração ou uma resposta de API. Espaços em branco são aceitáveis; tabs e comentários não são (JSON puro não tem comentários).

  2. 2

    Analise com um analisador estrito do RFC 8259

    O validador rejeita qualquer coisa que a especificação proíbe: vírgulas finais, chaves não entre aspas, aspas simples, `undefined`, números hexadecimais.

  3. 3

    Leia o erro

    Se falhar, você recebe a mensagem do analisador mais uma localização aproximada, o suficiente para navegar diretamente até o caractere.

  4. 4

    Corrija e revalide

    Corrija o problema, cole novamente e confirme que o documento é válido antes de confirmar ou enviar.

O que o JSON estrito permite, e o que não permite

Muitos formatos “quase JSON” circulam (JSON5, JSONC, HJSON, híbridos semelhantes ao YAML). A especificação JSON em si é pequena e estrita; este validador informa se seu documento sobrevive a um analisador estrito, que é o que a maioria dos sistemas downstream realmente executa.

Regras que pegam a maioria das pessoas

Regra Válido Inválido
Chaves devem ser strings entre aspas duplas {"a": 1} {a: 1}
Strings usam apenas aspas duplas "hello" 'hello'
Sem vírgulas finais [1, 2, 3] [1, 2, 3,]
Sem comentários (nenhum) // comentário ou /* */
Números: sem + inicial, sem .5 0.5 +1, .5
Apenas literais reservados true, false, null undefined, NaN
Codificação UTF-8 Strings Unicode Sequências de bytes inválidas

Erros comuns e o que eles significam

  • “Token } inesperado”, você tem uma vírgula final antes da chave de fechamento.
  • “Nome da propriedade esperado”, chave não está entre aspas ou você esqueceu as aspas ao redor da chave de abertura.
  • “Fim inesperado da entrada”, uma abertura { ou [ não está fechada; conte as chaves.
  • “Caractere de controle ruim”, um tab, nova linha ou outro byte de controle dentro de uma string literal. Escape-os como \t, \n, etc.
  • “Chave duplicada”, não é realmente um erro da especificação JSON (a especificação diz que DEVE ser única), mas muitos validadores avisam. O validador sinaliza isso como um aviso, não uma falha grave.

Se você precisa de formatos mais flexíveis

  • JSON5 permite vírgulas finais, comentários e aspas simples. Use um analisador JSON5 se esse for seu formato de destino.
  • JSONC (JSON com comentários) é o que as configurações do VS Code usam. Remova comentários antes da análise estrita.
  • YAML é um formato diferente; não assuma que é “apenas JSON indentado”.

Dicas

  • Valide antes de confirmar. Um erro de digitação em um package.json ou em uma configuração de CI quebra toda a construção até que alguém perceba.
  • Formate após validar para tornar as diferenças de revisão legíveis. Um arquivo JSON de uma linha é válido, mas miserável para revisar.
  • Para payloads grandes, valide em fluxo (jq na linha de comando, por exemplo). A análise no navegador tem dificuldades além de alguns MB.

Perguntas frequentes

Esta ferramenta verifica apenas a validade sintática, é um JSON bem formado? Para regras estruturais (campos obrigatórios, valores de enumeração, comprimentos de string), use um validador de esquema JSON. Os dois passos são complementares: não faz sentido executar a validação de esquema em um documento que não é JSON válido em primeiro lugar.

Porque o JSON padrão não tem comentários. // e /* */ são uma extensão de bom senso (JSONC, JSON5), mas o JSON puro os rejeita. Remova comentários antes de enviar para um consumidor estrito, ou adote JSON5 em toda a sua pilha.

Inválido em JSON estrito. A especificação permite apenas números finitos. Serialize-os como strings ("NaN", "Infinity") ou como null, dependendo de como seu consumidor lida com dados ausentes.

Não, a validação ocorre no seu navegador, então o payload que você cola nunca sai da página. Seguro para arquivos de configuração sensíveis e respostas de API com credenciais.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas