O que faz
Verifica um documento JSON a cada tecla e localiza exatamente onde ele quebra. Um selo alterna entre JSON válido e JSON inválido enquanto você digita. Quando o documento é válido, um painel de quatro células informa seu tamanho em bytes (UTF-8), seu tipo no nível superior, sua contagem de chaves ou itens e sua profundidade máxima de aninhamento. Quando é inválido, o erro nomeia a linha e a coluna, e um segundo painel cita a linha problemática da sua entrada. Tudo roda localmente no seu navegador; nada do que você cola é enviado a lugar algum.
Como usar
- Cole ou digite JSON na Entrada JSON. Toque em Exemplo para um documento de demonstração, Limpar para esvaziar a caixa.
- Leia o selo: JSON válido (verde) ou JSON inválido (vermelho).
- Se válido, leia o painel de estatísticas:
- bytes - o tamanho UTF-8 do documento, não sua contagem de caracteres.
- tipo - um entre array, object, string, number, boolean, null.
- chaves (objetos) ou itens (arrays) - apenas a contagem do nível superior.
- profundidade - aninhamento máximo; o nível superior conta como 1.
- Se inválido, leia
Line X, Column Y: <motivo>, depois a linha citada abaixo dele. - Copiar entrada duplica seu texto; Copiar link de compartilhamento o codifica na URL (
?j=...).
Exemplos
{"name":"CosmoDev","free":true,"tools":["json","base64"]}
Resultado: JSON válido, 57 bytes, tipo object, 3 chaves, profundidade 3. As strings dentro de tools ficam dois níveis abaixo da raiz, então a profundidade é 3.
Um escalar é um documento JSON completo:
| Entrada | Veredito | Estatísticas |
|---|---|---|
123 |
JSON válido | 3 bytes, tipo number, profundidade 1 |
true |
JSON válido | 4 bytes, tipo boolean, profundidade 1 |
null |
JSON válido | 4 bytes, tipo null, profundidade 1 |
Um erro cravado no seu lugar:
{"a": 1}
extra
Resultado: Line 2, Column 1 com o motivo, e o painel abaixo cita extra.
Como funciona a validação de JSON
Um parser JSON lê o documento uma vez, da esquerda para a direita, e para no primeiro caractere que não pode aparecer legalmente onde aparece. A ferramenta então mapeia o offset desse caractere para uma posição: conta as quebras de linha antes do offset para a linha, e os caracteres desde a última quebra de linha para a coluna. Ambas são baseadas em 1, então Line 2, Column 1 significa o começo exato da segunda linha. O painel citado imprime essa linha da sua entrada, então o trecho sempre vem do seu documento, nunca de um template genérico.
Quatro erros causam a maior parte do JSON inválido na prática:
| Erro | Exemplo | Por que falha |
|---|---|---|
| Vírgula final | {"a":1,} |
depois de uma vírgula o parser espera uma chave, e } não é uma |
| Aspas simples | {'a':1} |
strings e chaves devem usar aspas duplas |
| Chave sem aspas | {a:1} |
chaves são strings, e strings são quotadas |
| Comentário | {"a":1} //x |
JSON não define comentários de forma alguma |
Nenhum deles é questão de estilo. A gramática do JSON (RFC 8259) permite exatamente uma grafia para cada caso, e o parser a impõe. Essa rigidez é o ponto: um documento que valida aqui é parseado de forma idêntica em todo parser conforme, em toda linguagem.
Bom saber
- Apenas o primeiro erro: o parser para no primeiro problema. Corrija-o, revalide, e o próximo aparece.
- Diferenças de engine: quando a engine subjacente não informa posição, o veredito ainda mostra a mensagem bruta.
- Compartilhável: sua entrada fica codificada na URL (
?j=...), então um link reproduz a visão exata. - Privado: seguro para configs, credenciais e payloads de API.
- Ferramentas relacionadas: Formatador de JSON, Minificador de JSON, Conversor JSON ↔ CSV.