O que faz um formatador JSON
O JSON (JavaScript Object Notation) é o formato mais comum para trocar dados entre programas. As APIs normalmente devolvem o JSON como uma linha longa, sem espaços, porque os espaços acrescentam bytes e o computador não precisa deles. As pessoas precisam. Um formatador JSON acrescenta quebras de linha e recuo (indentação) para você enxergar a estrutura: quais valores pertencem a qual objeto, e onde cada array começa e termina.
Esta ferramenta faz três coisas:
- Formatar transforma um JSON compacto em um JSON legível e com recuo.
- Minificar remove todos os espaços e quebras de linha que não estão dentro de uma string.
- Validar confere o JSON de acordo com o padrão e aponta o primeiro problema que encontrar.
Como usar
- Cole seu JSON na caixa da esquerda. Ele é formatado assim que você cola. Você também pode clicar em Abrir arquivo para carregar um arquivo
.json, ou em Exemplo para testar com um exemplo. - Escolha um Recuo: 2 espaços, 4 espaços ou tabulações.
- Clique em Formatar, Minificar ou Validar. Ctrl+Enter repete a última ação pelo teclado.
- Ligue Ordenar chaves de A a Z se quiser as chaves em ordem alfabética.
- Clique em Copiar, ou em Baixar para salvar o resultado como um arquivo
.json.
Depois da primeira execução, o resultado é atualizado enquanto você digita, então dá para corrigir um problema e ver a mensagem sumir.
Antes e depois
Esta é uma resposta de API típica, sem espaços:
{"id":42,"name":"Ada Lovelace","active":true,"roles":["admin","editor"],"address":{"city":"London","zip":"NW1"},"score":98.50,"manager":null}
Depois de Formatar com 2 espaços:
{
"id": 42,
"name": "Ada Lovelace",
"active": true,
"roles": [
"admin",
"editor"
],
"address": {
"city": "London",
"zip": "NW1"
},
"score": 98.50,
"manager": null
}
Repare que 98.50 continua 98.50. O formatador lê o seu texto com um parser próprio e copia os números caractere por caractere. Um ID grande como 12345678901234567890 também continua exato, enquanto uma ferramenta baseada em JSON.parse escreveria 12345678901234567000.
Com Ordenar chaves de A a Z e 4 espaços, {"name":"Ada","age":36,"address":{"zip":"NW1","city":"London"}} vira:
{
"address": {
"city": "London",
"zip": "NW1"
},
"age": 36,
"name": "Ada"
}
Validar dá um resumo curto para uma entrada válida. Para o primeiro exemplo, ela informa que o JSON é válido, que a raiz é um objeto com 12 valores no total e que o aninhamento chega a 3 níveis.
Mensagens de erro que você pode ver
Quando o JSON está quebrado, a mensagem abaixo das caixas dá a linha e a coluna, e Mostrar na entrada leva o cursor até esse ponto. Estas são mensagens reais da ferramenta:
| Engano | Mensagem |
|---|---|
| Vírgula depois do último item | Linha 4, coluna 1: Vírgula final antes de “}” não é permitida |
| Aspas simples | Linha 1, coluna 2: Era esperado um nome de propriedade entre aspas duplas, mas apareceu uma aspa simples (as strings JSON precisam de aspas duplas) |
| Vírgula faltando entre os itens | Linha 3, coluna 3: Era esperado “,” ou “}” depois de um valor, mas apareceu “”” |
| Chave sem aspas | Linha 1, coluna 2: Era esperado um nome de propriedade entre aspas duplas, mas apareceu “n” |
Um comentário com // |
Linha 2, coluna 3: Comentários não são permitidos em JSON |
Essas regras vêm do padrão JSON. Os objetos literais do JavaScript aceitam aspas simples, chaves sem aspas e vírgulas finais, e é por isso que um código copiado de um arquivo .js muitas vezes falha aqui. Se os seus dados são realmente JavaScript, o formatador JavaScript é o mais adequado.
Dicas e limites
- Só JSON estrito.
undefined,NaN, comentários e vírgulas finais são apontados como erro, porque outros programas também vão recusá-los. - Números decimais no JSON sempre usam ponto. Um valor como
9,90, escrito no formato brasileiro fora de uma string, é um erro de sintaxe. Escreva9.90, ou guarde o valor como texto, entre aspas. - Chaves duplicadas ficam como foram escritas. O formatador não as junta nem as remove.
- Minificar não mexe no conteúdo das strings, inclusive nos espaços e acentos dentro delas.
- Para conferir um arquivo inteiro, use Abrir arquivo. Tudo fica no seu aparelho.
Outras formas de formatar JSON
VS Code. Abra um arquivo .json e use Formatar Documento pela paleta de comandos. O VS Code usa o formatador de JSON embutido.
Linha de comando com jq. jq . data.json mostra o JSON formatado, e jq -c . data.json mostra compacto. O jq também permite filtrar e reorganizar os dados.
Linha de comando com Python. python -m json.tool data.json formata um arquivo com 4 espaços. Ele faz parte da biblioteca padrão, então funciona onde o Python estiver instalado. Por padrão, ele troca os acentos por escapes como ç; acrescente --no-ensure-ascii para manter o texto em português legível.
Em JavaScript. JSON.stringify(JSON.parse(text), null, 2) formata uma string, mas passa pelos números do JavaScript, então IDs longos podem perder dígitos.
Ferramentas relacionadas
Para transformar JSON em um arquivo de configuração, use a ferramenta de converter JSON para YAML. Para colocar um JSON dentro de outra string JSON, use o JSON stringify. Para montar JSON a partir de uma planilha exportada, experimente a ferramenta de converter CSV para JSON.