Formatador e validador JSON

Formate, minifique e valide JSON com mensagens de erro claras que mostram exatamente onde está o erro de sintaxe. Funciona totalmente no seu navegador.

Esta página foi traduzida do inglês com a ajuda de IA e conferida com o original. Ler a versão em inglês

  • Grátis — Sem necessidade de cadastro
  • Instantâneo — Os resultados são atualizados enquanto você digita
  • Privado — Processado no seu navegador

O JSON que chega de uma API, de uma linha de log ou de um arquivo de configuração geralmente vem minificado em uma única linha ilegível ou editado à mão a ponto de não passar mais no parser. Esta ferramenta resolve os dois casos com o parser embutido no seu navegador, o que significa que o resultado é exatamente o que qualquer runtime JavaScript aceitaria.

Como funciona

Cole o JSON no campo de entrada. No modo Formatar, o texto é interpretado com JSON.parse e serializado de novo com JSON.stringify usando a indentação escolhida (2 ou 4 espaços). Minificar faz o mesmo parse, mas serializa sem nenhum espaço em branco, que é o que você quer para o corpo de uma requisição HTTP ou uma variável de ambiente. Em ambos os casos, a saída é uma nova serialização do valor interpretado, e não um ajuste nos espaços do seu texto, por isso a validade dela é garantida.

Se o parse falhar, você vê a mensagem do próprio parser. Quando o navegador informa uma posição em caracteres, a ferramenta a converte em linha e coluna para você ir direto ao erro. O Chromium e o Firefox informam essa posição; outros motores apenas descrevem o problema, e nesse caso você vê a mensagem sem a posição.

Copiar coloca o resultado na área de transferência; Baixar salva o conteúdo como data.json. Nada é enviado para servidor algum, e a ferramenta continua funcionando offline depois que a página carrega.

O que muda ao serializar de novo

Como a saída é reconstruída a partir do valor interpretado, algumas coisas são normalizadas, e vale saber quais:

  • Números são escritos na forma canônica do JavaScript: 1.0 vira 1, 1e2 vira 100, e inteiros acima de 2⁵³ perdem precisão. Não passe IDs de banco de dados de 64 bits nem valores financeiros armazenados como inteiros grandes por nenhum formatador JavaScript; mantenha-os como strings.
  • Chaves duplicadas são unificadas: o último valor vence, sem nenhum aviso.
  • Sequências de escape nas strings são resolvidas. "\u00e9" volta como "é", e "\/" vira "/". O significado é o mesmo; os bytes, não.
  • A ordem das chaves é mantida como foi escrita, exceto que chaves com cara de inteiro, como "1", vão para o início, porque objetos JavaScript ordenam essas chaves numericamente.

Nada disso muda o que o consumidor dos dados vai ler, mas se você estiver comparando arquivos ou verificando uma assinatura sobre o texto original, formate uma cópia em vez do original.

Como ler o erro

Por trás da maioria das mensagens "unexpected token" estão três falhas: uma vírgula sobrando depois do último item, aspas simples no lugar de aspas duplas e uma chave sem aspas. JSON também não aceita comentários; se você estiver colando de um arquivo .jsonc ou JavaScript, remova-os antes. Uma mensagem sobre fim inesperado da entrada quase sempre significa que um colchete ou uma chave nunca foi fechado; a posição informada é o fim do texto, então conte os fechamentos.

O mesmo passo de interpretar e depois imprimir está disponível na linha de comando com o jq, o que é bem útil para arquivos grandes demais para colar:

jq . response.json        # pretty-print with 2-space indent
jq -c . response.json     # minify to a single line

Saiba mais

JSON bem estruturado é só metade de uma boa API. Criando APIs REST com Spring Boot mostra como o servidor serializa objetos, lida com nulos e datas e retorna corpos de erro que também são JSON válido, enquanto Design de APIs REST aborda nomenclatura, paginação e versionamento para que os payloads que você formata aqui sejam consistentes desde o início. Para decodificar o JSON dentro de um token, use o decodificador de JWT, que aplica a mesma formatação ao header e ao payload.

Perguntas frequentes

Meus dados JSON são enviados a um servidor?
Não. A formatação, a minificação e a validação acontecem totalmente no seu navegador usando o analisador JSON integrado — seus dados nunca saem do seu dispositivo.
Qual é a diferença entre formatar e minificar?
Formatar adiciona indentação e quebras de linha para que o JSON fique fácil de ler. Minificar remove todos os espaços desnecessários para produzir o menor resultado possível.
Por que ele diz que meu JSON é inválido?
O validador informa a linha e a coluna exatas onde a análise falhou — as causas mais comuns são vírgulas sobrando, chaves sem aspas, ou aspas simples em vez de aspas duplas.