Pular para o conteúdo
Quaestio

Formatador de JSON

Cole um JSON e ele é reformatado, ou compactado em uma única linha.

Resultado

Cole um JSON no campo acima.
Incorporar

Incorpore esta ferramenta no seu site

Copie o código e cole onde a ferramenta deve aparecer, como num post de blog ou numa página escolar. É gratuito, o quadro não tem anúncios e a ferramenta calcula no navegador do visitante.

Como funciona

JSON é um formato de texto para dados estruturados, feito de objetos com campos nomeados, arrays, strings, números, true, false e null.

Formatar só muda os espaços em branco. Números e textos ficam exatamente como foram escritos, então você pode reformatar um arquivo com segurança antes de lê-lo.

Minificar remove todo espaço e quebra de linha desnecessários, o que em geral reduz de vinte a trinta por cento de um JSON com recuo.

Quando o texto não pode ser lido, a mensagem vem do próprio leitor do navegador e costuma apontar o caractere inesperado. As causas mais comuns são uma vírgula sobrando antes de uma chave de fechamento e o tipo errado de aspas.

Comentários não são permitidos em JSON, e nomes de campos precisam estar entre aspas duplas retas. Essa é a diferença mais comum em relação a como objetos são escritos em JavaScript.

Como a ferramenta formata

A ferramenta faz duas coisas em sequência. Primeiro o texto passa pelo JSON.parse do navegador, mas só para verificar se é válido. Depois a reformatação percorre o seu próprio texto caractere por caractere: o espaço em branco fora das strings é removido, e quebras de linha e recuos de dois ou quatro espaços são acrescentados depois de chaves, colchetes e vírgulas. Objetos e arrays vazios são escritos juntos. As strings são copiadas intactas, com as sequências de escape. Minificar é a mesma passada, sem quebras de linha nem recuos.

Os números ficam como foram escritos

Ler um JSON para o JavaScript e escrevê-lo de novo pode mudar os números, porque o JavaScript tem um único tipo numérico, com precisão limitada. Testado com o código da ferramenta, o inteiro 12345678901234567890 vira 12345678901234567000, o número 1.0 vira 1 e 1e400 vira null. Na ferramenta, os três ficam exatamente como foram escritos. A RFC 8259 trata como seguros entre sistemas só os inteiros até 2⁵³ − 1, ou seja, 9 007 199 254 740 991, e o I-JSON (RFC 7493) recomenda enviar como strings os números exatos maiores que isso.

Nomes repetidos

Um objeto com o mesmo nome duas vezes passa na verificação. A RFC 8259 apenas recomenda que os nomes sejam únicos e diz que o comportamento de quem recebe nomes repetidos é imprevisível; muitos leitores ficam só com o último valor. A ferramenta mantém os dois, então a repetição aparece no resultado. Uma ida e volta pelo JavaScript teria descartado o primeiro valor sem aviso. O I-JSON proíbe nomes repetidos de vez.

Erros comuns

Uma tabulação ou uma quebra de linha dentro de uma string torna o texto inválido, porque a RFC 8259 exige que os caracteres de controle U+0000–U+001F tenham escape, como \t para a tabulação. Isso acontece com facilidade quando o texto vem colado de uma planilha. NaN e Infinity, que existem em JavaScript mas não em JSON, também são rejeitados, e o mesmo vale para uma marca de ordem de bytes no início, embora a RFC 8259 permita que os leitores a ignorem.

Fontes

Como as ferramentas são verificadas