{ } · 2 / 4 / tab · minify
Formatador e validador de JSON
Um formatador de JSON adiciona indentação a um JSON compacto: um documento de 60 bytes passa a 86 bytes com 2 espaços e a 102 bytes com 4. Cole o JSON para obter o texto formatado ou minificado, ou a linha e a coluna do primeiro erro.
- {"a": 1,} → 1:8
- 12345678901234567890 → 12345678901234567000
- 60 B → 86 B (2) → 102 B (4)
Tudo roda nesta aba e nada é enviado. O analisador segue a RFC 8259, então comentários, aspas simples, vírgulas finais e chaves sem aspas são apontados como erros.
Scanned by NortonTM Safe Web
Resumo
- Preço
- Sem custo
- Conta
- Não é necessária
- Padrão
- RFC 8259 (JSON)
- Limites
- 5 MB de entrada, 512 níveis de aninhamento
- Saída
- 2 espaços, 4 espaços, tabulação ou minificado, com chaves opcionalmente ordenadas
- Envio
- Nenhum — o texto fica na aba do seu navegador
Erros de JSON e precisão numérica
Estes valores vêm do analisador usado nesta página. Linhas e colunas começam a contar em 1.
| Documento | Código do motivo | Linha:coluna |
|---|---|---|
| {"a": 1,} | trailing_comma | 1:8 |
| {'a': 1} | single_quotes | 1:2 |
| [1, 2 | unexpected_end | 1:6 |
| {"a": 01} | bad_number | 1:8 |
| {"a": "x\q"} | bad_escape | 1:9 |
| {"a": 1 "b": 2} | missing_comma | 1:9 |
| Número como escrito | Valor que o JSON.parse retorna |
|---|---|
| 12345678901234567890 | 12345678901234567000 |
| 9007199254740993 | 9007199254740992 |
| 1.0000000000000001 | 1 |
| 1E400 | Infinity |
Como formatar JSON
Cole o seu JSON
Digite ou cole um documento JSON de até 5 MB na caixa de entrada. Já há um exemplo ali para você ver o resultado primeiro.
Escolha a saída
Escolha 2 espaços, 4 espaços, uma tabulação ou a forma minificada. Marque a opção para ordenar as chaves de cada objeto por unidade de código.
Copie ou corrija
Copie ou baixe o resultado. Se o JSON tiver erro, a mensagem informa a linha, a coluna e o motivo, e um cursor marca o ponto na linha com problema.
Como funciona o formatador de JSON
A página lê o seu texto com um analisador próprio para a gramática JSON da RFC 8259 e o escreve de volta com a indentação escolhida. Como o analisador faz parte da página, todo navegador mostra a mesma mensagem para o mesmo erro. O JSON.parse nativo descreve os erros de formas diferentes no Chrome, no Firefox e no Safari, e nem todos indicam linha e coluna.
Números e sequências de escape são copiados exatamente como você digitou. O JSON.parse transforma 12345678901234567890 em 12345678901234567000, porque um número do JavaScript é um float de 64 bits com cerca de 15 a 17 dígitos significativos. Esta página mantém os 20 dígitos e avisa quando um número seria arredondado. A RFC 8259 diz que os nomes de um objeto devem ser únicos, então chaves duplicadas são mantidas e sinalizadas. Os limites são 5 MB de entrada e 512 níveis de aninhamento.
Perguntas sobre o formatador de JSON
Como formatar JSON online?
Cole o JSON na caixa de entrada. O texto formatado aparece na hora, com 2 espaços, 4 espaços ou uma tabulação por nível. O exemplo de 60 bytes passa a 86 bytes com 2 espaços e a 102 bytes com 4 espaços.
O que significa "unexpected token" e onde está o meu erro?
Significa que o analisador encontrou um caractere que a gramática JSON não permite naquele ponto. Esta página informa o motivo, a linha e a coluna. Para {"a": 1,} ela indica trailing_comma na linha 1, coluna 8.
Por que uma vírgula final é um erro em JSON?
A gramática da RFC 8259 exige um valor depois de cada vírgula, então [1, 2,] e {"a": 1,} são inválidos. Os literais de objeto do JavaScript aceitam vírgula final, mas o JSON não. Apague a última vírgula.
O JSON pode ter comentários ou aspas simples?
Não. A RFC 8259 não tem comentários, e strings e chaves usam só aspas duplas. Formatos como JSON5 e JSONC permitem os dois, mas são formatos diferentes, e esta página os aponta como erros.
O formatador altera os meus números?
Não. Números e escapes são escritos de volta exatamente como digitados. O JSON.parse arredondaria 12345678901234567890 para 12345678901234567000, mas esta página mantém todos os dígitos, então formatar não perde nada.
O meu JSON é enviado para algum lugar?
Não. A página roda na aba do seu navegador e não envia nada a nenhum servidor. Depois de carregada, ela também funciona off-line. O limite de entrada é 5 MB.