Formatador e validador de JSON

Cole um JSON para deixá-lo legível, compactá-lo em uma linha ou só confirmar se ele é válido. Quando há erro, a ferramenta aponta a linha e a coluna e explica o problema mais provável. Tudo acontece no seu navegador: o conteúdo não é enviado nem guardado.

Exemplos:

Resultado

Como usar

  1. Cole o JSON no campo de entrada (ou clique em um dos exemplos).
  2. Escolha Formatar para indentar, Compactar para remover espaços e quebras de linha, ou Só validar.
  3. Ajuste a indentação: 2 espaços, 4 espaços ou tabulação.
  4. Se houver erro, o trecho problemático fica selecionado no campo de entrada e a mensagem diz linha, coluna e uma dica de correção.
  5. Use Copiar resultado para levar a saída para o seu teste, ferramenta de API ou código.

Exemplos

Entrada compacta, como costuma vir no corpo de uma resposta HTTP:

{"id":1024,"nome":"Maria Teste","ativo":true,"tags":["qa","api"]}

Saída formatada com 2 espaços:

{
  "id": 1024,
  "nome": "Maria Teste",
  "ativo": true,
  "tags": [
    "qa",
    "api"
  ]
}

Entrada inválida, com vírgula depois do último item:

{
  "id": 1,
  "nome": "Maria",
}

Resultado: JSON inválido. Linha 4, coluna 1. Há uma vírgula sobrando antes de “}”.

Como funciona

A validação usa o JSON.parse nativo do navegador, que segue a especificação do formato (RFC 8259 e ECMA-404). Nada é avaliado como código: um texto que pareça JavaScript, como uma função, é tratado apenas como JSON inválido. A saída é gerada com JSON.stringify, com a indentação escolhida.

Quando o JSON.parse rejeita a entrada, a ferramenta lê a posição informada pelo navegador, converte em linha e coluna e examina os caracteres próximos para escolher a dica: vírgula sobrando, aspas simples, chave sem aspas, comentário, conteúdo terminado antes da hora ou valores que não existem em JSON, como NaN e undefined.

Antes de formatar, a ferramenta também procura números inteiros maiores que 9.007.199.254.740.991 (o maior inteiro que o JavaScript representa com exatidão). Se encontrar, avisa que esses valores serão arredondados na saída.

Uso em QA e desenvolvimento

  • Ler o corpo de uma resposta de API copiado do log, do DevTools ou de um relatório de falha.
  • Validar payloads antes de colar em uma coleção do Postman, em um teste do Cypress ou em uma keyword do Robot Framework.
  • Conferir arquivos de massa de dados e fixtures que quebram o teste com um erro de sintaxe pouco claro.
  • Compactar um JSON para enviar em uma variável de ambiente, um parâmetro de linha de comando ou um campo de banco.
  • Explicar para o time onde exatamente um JSON gerado pela aplicação está malformado ao abrir um bug.

Erros comuns em JSON

ErroExemploCorreção
Vírgula após o último item[1, 2,][1, 2]
Aspas simples{'a': 1}{"a": 1}
Chave sem aspas{a: 1}{"a": 1}
Comentários{"a": 1} // obsRemover o comentário
Valores de JavaScript{"a": undefined}{"a": null}
Quebra de linha dentro de textotexto com Enter no meioUsar \n dentro das aspas

Limitações

  • A entrada é limitada a 2 milhões de caracteres para não travar o navegador.
  • Números maiores que o limite seguro do JavaScript são arredondados na saída (a ferramenta avisa quando isso acontece). IDs muito longos devem trafegar como texto.
  • Chaves duplicadas no mesmo objeto são aceitas pelo JSON.parse; a última ocorrência prevalece e as anteriores somem do resultado.
  • A mensagem técnica do erro vem do navegador. Em alguns navegadores ela não informa a posição; nesse caso a ferramenta mostra uma dica geral.
  • Formatos derivados, como JSON5, JSONC (com comentários) e NDJSON (um JSON por linha), não são aceitos.

Perguntas frequentes

O JSON que eu colo fica salvo em algum lugar?

Não. O processamento é feito pelo JavaScript da página, no seu navegador. O conteúdo não é enviado ao servidor do AppsQuality e não é registrado. Mesmo assim, evite colar tokens, senhas e dados pessoais reais.

Por que a ordem das chaves mudou?

A ordem é mantida como na entrada, com uma exceção da linguagem: chaves que são números inteiros (como "10" ou "2") são listadas primeiro, em ordem crescente. O conteúdo continua o mesmo.

Um texto solto, como “abc” ou 42, é JSON válido?

Sim. Desde a RFC 7159, qualquer valor JSON pode ser a raiz: objeto, array, texto, número, true, false ou null. A ferramenta informa o tipo da raiz ao validar.

Qual a diferença entre formatar e compactar?

Formatar adiciona quebras de linha e indentação para leitura humana. Compactar remove todo espaço desnecessário, o que reduz o tamanho para tráfego e armazenamento. Os dois representam exatamente os mesmos dados.

Ferramentas relacionadas

Referências