Ferramentas

Formatador e validador JSON

JSON

Formate, valide e minifique JSON. Localização precisa de erros com linha e coluna, além de destaque de sintaxe.

100% no cliente Sem backend

URLs remotas não são buscadas; cole seu JSON diretamente.

Entrada
Saída
Cole o JSON à esquerda para vê-lo formatado aqui.
Nesta página

O que é um formatador de JSON?#

Um formatador de JSON pega um denso bloco de JSON — daqueles que um servidor registra numa única linha, ou que um bundler emite minificado — e reescreve-o com indentação consistente para que uma pessoa consiga lê-lo. Parece trivial, mas um formatador é geralmente a primeira ferramenta a que se recorre quando um pedido falha, quando um arquivo de configuração tem um erro de digitação, ou quando dois payloads parecem idênticos mas comportam-se de forma diferente.

Esta página faz três tarefas relacionadas no mesmo sítio. Ela embeleza (adiciona indentação e quebras de linha), valida (diz-lhe se o texto é, sequer, JSON válido) e minifica (remove todos os bytes de espaços em branco para obter o payload mais pequeno possível). Quando a validação falha, a barra de estado não se limita a dizer “erro” — indica a linha e coluna exatas, o que muitas vezes é a diferença entre uma correção de cinco segundos e vinte minutos a olhar para o tela.

Como usar#

  1. Cole o seu JSON no painel Entrada à esquerda. Também pode clicar em Exemplo para carregar um pequeno exemplo, se só quiser ver o comportamento.
  2. Escolha um estilo de Indentação na barra de ferramentas: 2 espaços, 4 espaços ou tabulação. Dois espaços é a convenção mais comum; as tabulações são úteis se vai colar num editor que já as usa.
  3. Escolha o que mais pretende fazer:
    • Formatar — embelezar com a indentação escolhida.
    • Minificar — colapsar para uma única linha, sem espaços. Ideal antes de colar no corpo de um pedido.
    • Validar — verificar a sintaxe sem alterar o texto; útil quando só quer uma resposta de sim/não.
  4. Marque Ordenar chaves se quiser as propriedades do objeto emitidas por ordem alfabética. Isto é surpreendentemente útil ao comparar duas respostas de versões diferentes de uma API: com chaves ordenadas, as únicas diferenças restantes são as que realmente importam.
  5. Marque Permitir vírgulas finais para uma variante mais relaxada e amigável (uma vírgula após o último elemento). Note que parsers estritos rejeitarão isto — ative apenas para leitura local.
  6. Leia o resultado no painel Saída. A barra de estado por baixo indica JSON válido ou a localização exata do erro (linha:col — mensagem). Use Copiar para recolher o resultado.

Principais funcionalidades#

  • Parser nativo estrito. Construído sobre a própria implementação JSON do navegador, pelo que o que passa aqui é o que passa em tempo de execução. Sem dialetos personalizados, sem surpresas.
  • Localização precisa de erros. Uma vírgula final, uma chave sem aspas, um parêntesis em falta — cada um é reportado com a sua linha e coluna, não apenas um “erro de análise” genérico.
  • Três estilos de indentação. 2 espaços, 4 espaços, tabulações.
  • Ordenação de chaves e vírgula final opcionais. Alterne qualquer um dos dois por tarefa sem voltar a colar.
  • 100% no lado do cliente. O texto que cola é processado pela página no seu navegador. Nunca é enviado — não há backend para o qual enviar.
  • Contagem de caracteres em tempo real. Ambos os painéis mostram o seu tamanho, o que ajuda quando se tenta reduzir bytes de um payload.

Exemplo prático#

Imagine que um endpoint de configuração devolve este bloco minificado e precisa de detetar uma chave com nome errado:

Entrada (minificada, uma linha):

{"server":"api.example.com","port":443,"retry":{"count":3,"backoffMs":[100,400,1600]},"tags":["prod","primary"]}

Clique em Formatar com indentação de 2 espaços e Ordenar chaves ativado:

{
  "port": 443,
  "retry": {
    "backoffMs": [
      100,
      400,
      1600
    ],
    "count": 3
  },
  "server": "api.example.com",
  "tags": [
    "prod",
    "primary"
  ]
}

Com as chaves ordenadas, backoffMs fica ao lado de count, e consegue ver imediatamente a forma exponencial (100, 400, 1600) que era invisível na versão de uma linha. Repare que tags continua a ser ["prod","primary"] — Ordenar chaves reordena apenas as propriedades do objeto; nunca toca nos elementos dos arrays, pelo que a ordem em que os colocou é exatamente a ordem que recupera.

FAQ#

Isto envia os meus dados?#

Não. A análise é feita pela API JSON nativa do navegador dentro desta página. Não há endpoint de servidor nem pedido de rede — a sua entrada fica no seu dispositivo.

A barra de estado diz que o meu JSON é inválido, mas parece estar bem. E agora?#

Verifique a linha e coluna indicadas. Os quatro culpados mais comuns são: uma vírgula final antes de um } ou ] de fecho, aspas simples em vez de aspas duplas ao redor das strings (o JSON exige aspas duplas), uma chave de objeto sem aspas, e um carácter de tabulação ou de controlo literal colado de outro editor. O número da coluna aponta para o culpado exato.

O que é que “Ordenar chaves” realmente faz?#

Reemite as propriedades de cada objeto por ordem alfabética (ordem ASCII, sensível a maiúsculas e minúsculas). Os arrays mantêm-se na ordem original — ordenar chaves nunca reordena os elementos de um array, porque a ordem dos arrays é semanticamente significativa.

Consegue lidar com arquivos muito grandes?#

Sim, até ao limite de memória do navegador. Para arquivos além de alguns megabytes, espere que a formatação demore um momento notório; a barra de estado mostra a contagem de caracteres para que possa aferir o tamanho. Esta página não faz streaming, pelo que entradas extremamente grandes (centenas de MB) sobrecarregarão o separador.