Formatador e validador de JSON

RSS

Cole um JSON para formatá-lo, minificá-lo ou descobrir exatamente onde ele é inválido. Tudo roda no seu navegador, então seus dados nunca saem do seu dispositivo.

Funciona 100% no seu navegador. Nada do que você cola é enviado ou armazenado.
Entrada JSON
Resultado
Pronto.

Como usar o formatador de JSON

  1. Cole seu JSON na caixa de entrada ou digite diretamente.
  2. Escolha um estilo de indentação: 2 espaços, 4 espaços ou tabulações.
  3. Clique em Formatar para deixar o JSON legível ou em Minificar para remover todos os espaços em branco opcionais.
  4. 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.
  5. Se quiser, ative Ordenar chaves para colocar as chaves dos objetos em ordem alfabética, ou converta o resultado para YAML ou CSV.
  6. 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:

ProblemaInválidoVá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 JSONundefined, NaN, Infinitynull 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.
Dica: Vai inspecionar um token? O payload de um JWT é JSON codificado em Base64url, e o decodificador de JWT formata esse conteúdo para você.

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

Copiado para a área de transferência