Formatador e validador de JSON
Cole JSON e formate-o com 2, 4 ou 8 espaços, comprima-o em uma única linha ou apenas verifique se ele é válido. JSON válido volta colorido, com o tamanho antes e depois; JSON inválido volta com a mensagem de erro do seu próprio navegador. Gratuito, sem cadastro, e nada do que você cola sai do seu navegador.
0 linha · 0 byte
Como usar o formatador de JSON
- 1. Cole seu JSON. De um valor isolado a uma resposta grande de API. A caixa conta linhas e bytes enquanto você digita.
- 2. Escolha o recuo. Escolha 2, 4 ou 8 espaços. A configuração só afeta Formatar.
- 3. Escolha uma ação. Formatar organiza com quebras de linha e recuo, Minificar remove todos os espaços e quebras opcionais, e Somente validar verifica a sintaxe e mostra um veredito verde ou vermelho, sem gerar saída.
- 4. Leia o resultado. JSON válido aparece colorido (chaves em roxo, textos em verde, números em azul, true e false em laranja, null em vermelho), com o tamanho da entrada, o tamanho da saída e a variação percentual. JSON inválido mostra a mensagem do analisador. Copiar saída copia o que você vê.
O que conta como JSON válido
A ferramenta entrega seu texto ao analisador estrito de JSON do motor JavaScript, que aceita o que o padrão do formato, RFC 8259 (a mesma gramática da ECMA-404), aceita, e nada além disso. Isso é mais rigoroso do que um literal de objeto em JavaScript, e por isso código que funciona em um script costuma falhar aqui. Os erros mais comuns:
| Erro | Exemplo | Correção |
|---|---|---|
| Vírgula sobrando no final | {"a": 1,} | Apague a última vírgula. |
| Aspas simples | {'a': 1} | Use aspas duplas em todas as chaves e textos. |
| Chave sem aspas | {a: 1} | Coloque aspas: {"a": 1}. |
| Comentário | // nota ou /* nota */ | JSON não tem comentários; apague-os. |
| Zero à esquerda ou sinal de mais | 007, +5 | Escreva 7 e 5. |
| NaN, Infinity ou undefined | {"x": NaN} | Não existem em JSON; use null ou um texto. |
| Quebra de linha crua dentro de um texto | uma quebra de linha entre aspas | Escreva-a como os dois caracteres \n. |
| Vírgula ausente | {"a": 1 "b": 2} | Separe os membros com vírgulas. |
Um 42, um "texto" ou null sozinho também é válido: desde a RFC 7159, um texto JSON pode ser qualquer valor, não apenas um objeto ou uma lista. True ou NULL com maiúsculas não são válidos: os três literais são escritos em minúsculas.
O que a formatação altera
Esta ferramenta analisa seu JSON e o escreve de novo, então o resultado são os mesmos dados em um novo layout, e não uma cópia caractere por caractere do seu texto. Quatro coisas podem mudar; as duas primeiras importam se você formata JSON que alimenta outro sistema:
- Inteiros grandes perdem precisão. Números em JavaScript são de ponto flutuante de 64 bits, então inteiros acima de 9.007.199.254.740.991 (253 − 1) são arredondados.
9007199254740993volta como9007199254740992. Se seus IDs forem desse tamanho, mantenha-os como textos. - Chaves duplicadas se fundem. A RFC 8259 diz que os nomes devem ser únicos, mas não proíbe repetições; esta ferramenta mantém o último valor e descarta os anteriores.
- Chaves com aparência de inteiro vão para o início. Em JavaScript, chaves como
"1"e"2"são listadas antes das outras, em ordem crescente, então{"b":1,"2":1,"1":1}é escrito de volta como{"1":1,"2":1,"b":1}. As outras chaves mantêm sua ordem. - Números e escapes são reescritos.
1.50vira1.5,1e2vira100e\u00e9viraé.
Exemplo prático
Considere esta entrada de 119 bytes, que inclui um ID grande, um zero à direita, um expoente e um escape:
Entrada
{"title":"APA Manual","year":2020,"tags":["style","7th"],"id":9007199254740993,"price":1.50,"x":1e2,"name":"caf\u00e9"}
Formatar com 2 espaços gera 156 bytes (+31%), um membro por linha, com "id": 9007199254740992, "price": 1.5, "x": 100 e "name": "café". Minificar gera 114 bytes (-4%) em uma única linha, com as mesmas alterações. Nada mais nos dados muda. Os tamanhos são em bytes UTF-8, então o é conta como dois.
Qual ferramenta você precisa?
Esta página é para o próprio JSON. Se seus dados estão em outro formato, há uma ferramenta irmã: CSV para JSON para planilhas, os conversores previstos YAML para JSON e XML para JSON, o Formatador de XML para documentos XML e o Formatador de HTML para marcação.
Perguntas frequentes
- O que faz um formatador de JSON?
- Ele analisa o JSON e o escreve de volta com recuo consistente e um membro por linha, para que uma resposta de API minificada se torne legível. Como precisa analisar primeiro, também serve de validador: um texto que não é JSON válido gera um erro em vez de uma saída.
- Por que meu JSON diz que é inválido?
- Geralmente por um dos erros da tabela acima: vírgula final, aspas simples, chave sem aspas, comentário ou vírgula ausente. A mensagem vem do analisador de JSON do seu próprio navegador, então a redação varia entre Chrome, Firefox e Safari, e ela pode ou não indicar uma posição; procure o problema no ponto indicado ou logo antes dele.
- Posso formatar JSON com comentários, JSON5 ou JSONC?
- Não. Comentários, vírgulas finais e aspas simples não fazem parte do JSON, e esta ferramenta usa um analisador estrito. Remova-os antes, ou converta o arquivo para JSON simples no seu editor.
- Qual é a diferença entre Formatar, Minificar e Somente validar?
- Formatar acrescenta recuo e quebras de linha, Minificar remove todo o espaço em branco opcional para obter o texto menor, e Somente validar verifica a sintaxe e mostra um veredito, sem saída. Os três usam o mesmo analisador, então um documento que passa em um passa em todos.
- Por que um número no meu JSON mudou?
- A ferramenta lê os números como floats do JavaScript e os imprime na forma mais curta do JavaScript. Isso transforma
1.50em1.5e1e2em100, e arredonda inteiros maiores que 253 − 1. Guarde identificadores muito grandes como textos se eles precisarem ser exatos. - Meu JSON é enviado para algum lugar?
- Não. Análise, formatação e destaque de cores rodam no seu navegador, e o texto que você cola não é enviado ao CitationEasy nem a ninguém. Limpe a caixa quando terminar, em um computador compartilhado.
- Posso ordenar as chaves ou usar tabulações no recuo?
- Não aqui. As opções de recuo são 2, 4 ou 8 espaços, e as chaves mantêm a ordem que a entrada lhes deu, exceto as chaves com aparência de inteiro, que vão para o início, como descrito acima.