Ir para o conteúdo

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. 1. Cole seu JSON. De um valor isolado a uma resposta grande de API. A caixa conta linhas e bytes enquanto você digita.
  2. 2. Escolha o recuo. Escolha 2, 4 ou 8 espaços. A configuração só afeta Formatar.
  3. 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. 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:

Motivos comuns para o JSON não ser analisado
ErroExemploCorreçã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 mais007, +5Escreva 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 textouma quebra de linha entre aspasEscreva-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. 9007199254740993 volta como 9007199254740992. 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.50 vira 1.5, 1e2 vira 100 e \u00e9 vira é.

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.50 em 1.5 e 1e2 em 100, 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.

Ferramentas relacionadas

Mais em Dados, marcação e código