Visão geral / Desenvolvimento e código / Formatador e validador de JSON
Desenvolvimento e código 100% no navegador e offline

Formatador e validador de JSON

Formate, minifique e valide código JSON bagunçado, com verificação de sintaxe, destaque de erros e ordenação de chaves.

Cole ou digite o conteúdo; o resultado aparece na hora e os erros são exibidos abaixo do campo. Os campos já vêm com um exemplo: clique em um e digite para substituí-lo.

Seus arquivos e dados nunca saem do navegador – nada é enviado.

Tamanho: 0 B Status: válido

A resposta da API vem em uma linha só, com 40 KB, e o carregador de configuração a recusa sem dizer por quê. Cole o texto neste formatador de JSON e a linha de status informa na hora se ele é interpretado. Um clique em um dos botões de formatar mostra então como os dados se aninham.

A verificação é o próprio JSON.parse do navegador. O texto que passa aqui passa também em JavaScript.

Usando o formatador de JSON, botão por botão

  1. O editor abre com um pequeno exemplo já indentado. Limpar esvazia o editor, e Carregar exemplo traz o exemplo de volta. Substitua-o pelo seu próprio texto.
  2. Observe a linha de status sob o editor enquanto digita. Ela alterna entre "JSON válido" e "JSON inválido" e mostra o tamanho. Depois de um erro, uma caixa vermelha acima do editor cita a mensagem do interpretador.
  3. Aperte Formatar (2 espaços) ou Formatar (4 espaços) para trocar o texto pela versão indentada. Se o texto for inválido, nada é substituído e a caixa de erro permanece.
  4. Minificar escreve uma linha sem espaços em branco, o que é útil antes de colar um exemplo em um comando curl ou em uma variável de ambiente de uma linha. Ordenar chaves (A-Z) ordena as chaves de todos os objetos e indenta o resultado com 2 espaços.
  5. Copiar copia o texto do editor. Baixar .json o salva como data.json.

Por que 1.0 vira 1

A ferramenta não embaralha o seu texto. Ela o interpreta como valores JavaScript e escreve esses valores de novo. Isso explica a maioria das surpresas. 1.0 volta como 1. O inteiro 12345678901234567890 volta como 12345678901234567000, porque os números do JavaScript são doubles e perdem dígitos acima de 9007199254740991. Guarde IDs muito longos como strings.

Se um objeto tiver a mesma chave duas vezes, o interpretador fica com o último valor. Depois de formatar, o primeiro valor se foi. Compare o resultado com o original antes de fazer o commit.

Chaves ordenadas: Zebra antes de abelha

Duas versões de um arquivo de tradução parecem diferentes, mas você suspeita de que só a ordem das chaves mudou. Ordene as duas, passe para uma ferramenta de diff, e restam só as mudanças reais. A ordenação vale em todos os níveis. Arrays mantêm a ordem, porque a ordem dos itens pode ter significado.

A ordem é pelo código do caractere, não pelo dicionário, então "Zebra" vem antes de "abelha". Chaves que parecem inteiros, como "10", sempre aparecem primeiro. O próprio JavaScript faz isso, e a ordenação não consegue mudá-lo.

Estrito é estrito, e não há desfazer

Só JSON estrito é aceito. Estes casos são erros, embora o JavaScript ou o JSON5 os aceitem:

  • comentários
  • uma vírgula depois do último item, o motivo mais comum de uma caixa vermelha
  • aspas simples em vez de ", e chaves sem aspas

Não é possível indentar com tabulações, e os botões de formatar sobrescrevem o texto do editor, então guarde uma cópia do original. A página não define limite de tamanho, mas interpreta na thread principal. Um arquivo de várias dezenas de megabytes pode travar a aba por um tempo. A redação dos erros difere entre Chrome, Firefox e Safari.

Nenhuma requisição sai quando você aperta Formatar

Interpretar e formatar são JavaScript na própria página. Abra a aba Rede das ferramentas de desenvolvedor e clique em qualquer botão: nada é enviado. A ferramenta não grava o seu texto no armazenamento do navegador. Copiar usa a área de transferência, e Baixar cria o arquivo no seu dispositivo. Só a página em si veio do servidor, uma vez.

Perguntas frequentes (FAQ)

Cole no editor e aperte Formatar (2 espaços). O trabalho é feito pelo JavaScript no seu navegador, e nenhuma requisição é enviada quando você aperta o botão.