Informática
Formatador e validador JSON
Cole o JSON: se for válido, você o recebe formatado ou minificado, com as chaves em ordem alfabética se quiser e algumas estatísticas; se não for, a calculadora aponta a linha e a coluna do erro.
JSON válido e legível
JSON é o formato em que a maioria das APIs web troca dados: objetos entre chaves com chaves de texto entre aspas duplas, arrays entre colchetes, strings, números, true, false e null. As APIs costumam devolvê-lo minificado numa linha só: formatá-lo com indentação o deixa legível, minificá-lo tira os espaços e economiza bytes.
A sintaxe é mais rígida que a do JavaScript: sem vírgula depois do último elemento, sem comentários, sem aspas simples e com as chaves sempre entre aspas duplas. São os erros mais comuns ao escrever JSON à mão, e o analisador os aponta na posição exata.
Ordenar as chaves em ordem alfabética não muda o significado, porque num objeto JSON a ordem das chaves não importa, mas facilita muito comparar duas respostas ou dois arquivos de configuração com um diff.
Erros comuns
- Deixar uma vírgula depois do último elemento de um objeto ou array: JSON não aceita.
- Usar aspas simples ou chaves sem aspas, como em JavaScript: JSON exige aspas duplas.
- Escrever NaN, Infinity ou undefined: não são valores JSON; usa-se null.
Perguntas frequentes
O JSON que colo é enviado a um servidor?
Não: a formatação e a validação acontecem no navegador com JSON.parse. Só JSONs curtos vão para o endereço da página, para poder compartilhá-la.
Por que números muito grandes mudam?
JSON.parse usa os números de ponto flutuante do JavaScript, exatos até 2⁵³: um ID como 12345678901234567890 é arredondado. APIs com IDs grandes costumam enviá-los como strings.
Qual a diferença entre JSON e JSON5?
JSON5 é uma extensão que aceita comentários, vírgulas finais e aspas simples; prática para arquivos de configuração, mas não é JSON padrão e JSON.parse a rejeita.
Como funciona este cálculo
O texto é lido com JSON.parse, que aplica a gramática da RFC 8259; em caso de erro, a posição informada pelo navegador é convertida em linha e coluna. O resultado é reescrito com JSON.stringify, com 2 ou 4 espaços ou uma tabulação por nível, ou sem espaços. Com a ordenação, as chaves de cada objeto são ordenadas recursivamente por código Unicode. Os tamanhos são em bytes UTF-8.
Calculadoras relacionadas
Testador de expressões regulares
Teste uma regex num texto: correspondências destacadas, grupos de captura e substituição, em JavaScript.
Codificação de URL
Codificação e decodificação por porcentagem de valores e endereços, e uma URL dividida em partes.
Conversor Base64
De texto, inteiro, hexadecimal ou binário para Base64 e de volta, com os grupos de 6 bits explicados.
Expressões cron explicadas
Traduza uma expressão cron em palavras e veja as próximas execuções, campo por campo.