Formatador e validador de JSON — embelezar, minificar e achar erros

Formate, minifique e valide JSON, com erros de parsing localizados por linha e coluna. No seu navegador, sem upload.

145 bytes
JSON válido · 6 chaves · profundidade 2 · 195 bytes na saída
{
  "name": "FreeToolsForWeb",
  "tools": [
    "image converter",
    "word counter",
    "JSON formatter"
  ],
  "settings": {
    "theme": "light",
    "language": "en"
  },
  "active": true
}

Funciona totalmente no seu navegador. Nada do que você digita é enviado para nós nem armazenado. Ver todas as ferramentas grátis.

Encontrou um problema ou algo que poderia ser melhor? Lemos todas as mensagens e corrigimos rápido.

Este formatador de JSON grátis valida e formata JSON no seu navegador. Cole uma resposta de API, um arquivo de configuração ou uma linha de log, e ele é reindentado na hora; se não for possível interpretá-lo, o erro informa a linha e a coluna, em vez de um simples “Unexpected token”. Nada é enviado, então payloads de produção e chaves de API ficam na sua máquina.

Ele usa o parser de JSON do próprio navegador, o mesmo em que Node.js, React e todo runtime moderno se apoiam, então “válido” aqui significa válido em qualquer lugar. Minifique para o corpo de uma requisição ou uma configuração que precisa ficar pequena, ordene as chaves para poder comparar dois documentos com diff e veja a contagem de chaves e a profundidade de aninhamento para ter uma noção de um payload antes de escrever código para ele.

Como usar

  1. Cole o seu JSON na caixa de entrada. O resultado é atualizado enquanto você digita.
  2. Escolha Formatar para uma saída legível ou Minificar para uma única linha compacta. Escolha 2 espaços, 4 espaços ou tabulações conforme o seu código.
  3. Ative Ordenar chaves quando precisar comparar dois documentos JSON; dados idênticos passam a gerar textos idênticos.
  4. Se a entrada for inválida, leia a linha e a coluna na linha de status vermelha e corrija aquele ponto. As causas mais comuns são uma vírgula sobrando no final, aspas simples ou uma chave sem aspas.
  5. Copie o resultado ou baixe-o como arquivo .json.

Perguntas frequentes

Por que meu JSON falha com “Unexpected token”?

Quase sempre é uma de quatro coisas: uma vírgula sobrando depois do último item de um objeto ou array, aspas simples em vez de duplas, uma chave sem aspas como {name: 1}, ou um comentário. O JSON não permite nenhuma dessas, mesmo que o JavaScript permita. Esta ferramenta informa a linha e a coluna, o que normalmente aponta direto para o caractere culpado.

Meus dados são enviados para algum lugar?

Não. A interpretação e a formatação acontecem no seu navegador, com JSON.parse e JSON.stringify. Você pode se desconectar da internet depois que a página carregar, e ela continua funcionando — a prova mais simples. Isso a torna segura para payloads com tokens ou dados de clientes, embora continue valendo o cuidado de sempre com o que você cola em qualquer aba do navegador.

Qual é a diferença entre formatar e minificar?

Formatar (embelezar) acrescenta quebras de linha e indentação para que as pessoas consigam ler a estrutura. Minificar remove todo caractere desnecessário para que as máquinas transfiram mais rápido: um documento minificado costuma ser de 20 a 40 por cento menor. Os dados são idênticos nos dois casos; só os espaços em branco mudam.

Ele aceita JSON5, JSONC ou comentários?

Não, de propósito. Esses são superconjuntos usados por alguns arquivos de configuração (configurações do VS Code, tsconfig), mas rejeitados por APIs e pelo JSON.parse. Se você colar JSONC aqui, ele vai falhar no primeiro comentário, que é a resposta correta para “a minha API vai aceitar isto?”. Remova os comentários antes se precisar de uma versão estrita.

Existe limite de tamanho?

Só o que o seu navegador consegue manter confortavelmente numa caixa de texto. Documentos de vários megabytes são formatados em bem menos de um segundo num notebook; acima de uns 50 MB, a maioria dos navegadores fica lenta, e uma ferramenta de linha de comando como o jq é a melhor escolha.

Por que ordenar as chaves?

Dois documentos JSON com os mesmos dados, mas com as chaves em ordem diferente, são textos diferentes, então uma ferramenta de diff mostra todas as linhas como alteradas. Ordenar as chaves recursivamente deixa a ordem canônica, e o diff passa a mostrar só as mudanças reais. É também assim que muitos sistemas geram hashes estáveis de conteúdo JSON.

Regras do JSON que pegam muita gente

• Chaves e strings precisam de aspas duplas. Aspas 'simples' são JavaScript, não JSON.

• Nada de vírgulas sobrando no final. O último elemento de um objeto ou array é seguido diretamente por } ou ].

• Nenhum tipo de comentário, e nenhum valor undefined ou NaN; use null.

• Números não podem ter zero à esquerda nem ponto no final: 0.5 e 12 estão certos, 05 e 12. não.

• O nível mais alto pode ser qualquer valor, inclusive uma string ou um número soltos, mas a maioria das APIs espera um objeto ou um array.

Quando minificar e quando não

Minifique tudo o que trafega pela rede em volume: corpos de requisições e respostas de API, configurações incorporadas no HTML, arquivos de dados carregados por uma página. O gzip já elimina a maior parte do custo dos espaços em branco, então o ganho é modesto, mas é de graça. Não minifique nada que uma pessoa precise editar ou revisar: configurações versionadas num repositório, fixtures de uma suíte de testes ou exemplos de documentação. Ali, a legibilidade vale muito mais do que algumas centenas de bytes.

Ferramentas grátis relacionadas

  • Codificador / decodificador Base64 — Codifique texto ou arquivos em Base64, transforme imagens em data URIs com trechos de CSS e <img>, e decodifique Base64 de volta em um arquivo com pré-visualização. Nada sai do seu navegador.
  • Testador de regex — Teste uma expressão regular num texto de exemplo, com destaque das correspondências ao vivo, grupos de captura e prévia de substituição. Grátis, no navegador.
  • Decodificador JWT — Decodifique o header e o payload de um JWT, leia a expiração em linguagem simples, verifique assinaturas HS, RS, PS e ES ou assine um novo token. Nada sai do seu navegador.