Como usar o formatador de JSON
- Cole seu JSON na caixa de entrada ou digite diretamente.
- Escolha um estilo de indentação: 2 espaços, 4 espaços ou tabulações.
- Clique em Formatar para deixar o JSON legível ou em Minificar para remover todos os espaços em branco opcionais.
- Se a entrada for inválida, o validador mostra a mensagem de erro junto com a linha e coluna em que a análise falhou.
- Se quiser, ative Ordenar chaves para colocar as chaves dos objetos em ordem alfabética, ou converta o resultado para YAML ou CSV.
- Copie a saída e cole onde você precisar.
Tudo roda no seu navegador: seu JSON nunca é enviado a um servidor nem armazenado, então é seguro formatar respostas de API, arquivos de configuração e logs que contêm dados privados.
O que é JSON e por que formatá-lo?
JSON (JavaScript Object Notation) é um formato de dados leve, baseado em texto, padronizado na RFC 8259 e na ECMA-404. Ele é formado por apenas seis tipos de valor: objetos ({}), arrays ([]), strings, números, os booleanos true e false, e null. Essa simplicidade é o motivo de quase toda API REST, muitos arquivos de configuração e inúmeros pipelines de logs o usarem.
Máquinas não se importam com espaços em branco, por isso o JSON enviado pela rede costuma vir minificado em uma única linha. Isso é eficiente, mas quase impossível de ler para uma pessoa. Formatar acrescenta quebras de linha e indentação consistente, para que você veja o aninhamento de relance, perceba um campo faltando e compare dois documentos em um diff. Minificar faz o contrário e é útil quando você quer embutir o JSON em uma requisição ou reduzir o tamanho do payload.
Erros comuns de JSON e como corrigi-los
O JSON é mais rígido do que os literais de objeto do JavaScript. Estes são os erros que o validador mais encontra:
| Problema | Inválido | Válido |
|---|---|---|
| Vírgula sobrando no final | [1, 2, 3,] | [1, 2, 3] |
| Aspas simples | {'name': 'Ada'} | {"name": "Ada"} |
| Chave sem aspas | {name: "Ada"} | {"name": "Ada"} |
| Comentários | // note ou /* note */ | Remova-os ou use um campo "_comment" |
| Valores que não são JSON | undefined, NaN, Infinity | null ou uma string |
| Zeros à esquerda | {"id": 007} | {"id": 7} ou "007" |
Um trecho quebrado típico, copiado de código JavaScript, fica assim:
{
name: 'Ada Lovelace',
born: 1815, // year
languages: ['English', 'French',],
}
O JSON corrigido coloca cada chave e cada string entre aspas duplas, tira o comentário e remove as duas vírgulas sobrando no final:
{
"name": "Ada Lovelace",
"born": 1815,
"languages": ["English", "French"]
}
Outras causas frequentes são aspas duplas sem escape ou quebras de linha literais dentro de strings (use \" e \n) e um caractere solto depois do colchete ou da chave de fechamento. Quando a posição informada parecer errada, confira a linha logo acima: uma vírgula faltando geralmente só é detectada quando o analisador chega ao valor seguinte.
Dicas e boas práticas
- Escolha uma indentação e mantenha-a. Dois espaços é a convenção mais comum em projetos JavaScript; quatro espaços é comum nas ferramentas de Python. A consistência importa mais do que a escolha.
- Ordene as chaves antes de comparar. Objetos JSON não têm ordem, então dois documentos equivalentes podem parecer diferentes. Ordenar as chaves deixa os diffs do controle de versão e as comparações muito mais limpos.
- Cuidado com números muito grandes. O JavaScript armazena números como ponto flutuante de 64 bits, então inteiros maiores que 9.007.199.254.740.991 (253 − 1) podem perder precisão ao serem lidos em um navegador. Envie IDs grandes como strings.
- Use UTF-8. A RFC 8259 exige UTF-8 para JSON trocado entre sistemas.
- Converta quando ajudar. CSV serve para um array plano de objetos que você quer abrir em uma planilha; YAML é mais fácil de editar à mão. Para conversão nos dois sentidos, experimente o conversor JSON ↔ YAML ou o conversor CSV ↔ JSON.
Perguntas frequentes
O JSON permite comentários?
Não. Nem a RFC 8259 nem a ECMA-404 permitem comentários. Algumas ferramentas aceitam formatos estendidos, como JSONC ou JSON5, mas um analisador padrão vai rejeitá-los. Remova os comentários antes de validar ou passe as anotações para um campo comum.
Por que meu JSON é inválido se funciona no JavaScript?
Os literais de objeto do JavaScript permitem aspas simples, chaves sem aspas, vírgulas sobrando no final, comentários e valores como undefined. O JSON não permite nada disso. No código, use JSON.stringify() para gerar JSON válido em vez de escrevê-lo à mão.
Formatar altera meus dados?
Formatar e minificar só mudam os espaços em branco entre os tokens; chaves, valores e a ordem dos arrays continuam iguais. Ordenar as chaves reorganiza os membros dos objetos, o que não muda o significado, porque objetos JSON não têm ordem.
Qual é a diferença entre formatar e validar?
Validar verifica se o texto é JSON sintaticamente correto. Formatar reimprime um JSON válido com uma indentação legível. O formatador valida primeiro, então não é possível formatar um documento que não pode ser analisado.
Posso converter JSON aninhado em CSV?
CSV é uma tabela plana, então funciona melhor com um array de objetos que compartilham as mesmas chaves. Objetos e arrays aninhados não têm equivalente direto em CSV e normalmente são achatados ou serializados em uma única célula.
Atualizado