Caixa de ferramentas JSON

Formatar / minificar / escapar / desescapar — tudo roda no seu navegador.

Resultado

Como usar

  1. Cole JSON ou qualquer texto à esquerda e escolha uma ação acima: Formatar, Minificar, Escapar ou Desescapar.
  2. “Indentação” afeta apenas Formatar (2 ou 4 espaços). Os resultados formatados começam expandidos; use as setas ao lado de cada linha para recolher ou expandir objetos e arrays.
  3. A validação automática aponta a linha e a coluna quando encontra um erro; copie ou baixe o resultado, e use o botão ⇄ ao lado de “Limpar” para movê-lo de volta para a entrada. Essas ações sempre usam o resultado completo, mesmo quando partes estão recolhidas.

Exemplo

Entrada

{"usuario":{"id":42,"nome":"Ana Clara","funcoes":["admin","editora"],"ativo":true},"pontuacao":12345678901234567890}

Formatado

{
  "usuario": {
    "id": 42,
    "nome": "Ana Clara",
    "funcoes": [
      "admin",
      "editora"
    ],
    "ativo": true
  },
  "pontuacao": 12345678901234567890
}

Apenas as regras padrão: indentação de 2 espaços, chaves na ordem em que você escreveu. A pontuação de 20 dígitos é impressa dígito por dígito — uma ida e volta pelo JSON.parse a transformaria em 12345678901234567000.

Regras, limites e problemas conhecidos

  • JSON estrito (RFC 8259): comentários, vírgulas finais, aspas simples, chaves sem aspas, NaN e Infinity são rejeitados, e a mensagem indica a correção em vez de citar o parser.
  • Formatar e Minificar mudam apenas os espaços em branco. Escapes de string, literais numéricos e chaves entre aspas são impressos exatamente como digitados: "\u00e9" continua "\u00e9", 12345678901234567890 continua exato, 1e400 não vira null, -0 continua -0.
  • Chaves duplicadas mantêm o último valor, como o JSON.parse faz, e um aviso nomeia a chave. O valor anterior é descartado.
  • “Escapar” codifica toda a entrada em um único literal de string JSON (aspas, contrabarras e caracteres de controle recebem escape; o resto fica intacto). “Desescapar” aceita uma string completa entre aspas (verificada estritamente) ou sequências de escape soltas.
  • Os números de linha e coluna contam pontos de código Unicode, então um emoji é uma coluna. Apenas espaço, tabulação, avanço de linha e retorno de carro contam como espaço em branco; U+3000 ou U+00A0 é reportado com seu ponto de código.
  • Limites: 1.000.000 de caracteres e 512 níveis de aninhamento. Acima de qualquer um deles você recebe um erro, nunca um resultado truncado. O envio de arquivo lê apenas o arquivo local — nada é enviado.
  • Sem conversão JSON→YAML/XML/CSV, sem JSON Schema, sem JSONPath, sem editor de árvore, sem parâmetros de URL, sem histórico. Tudo roda no seu navegador: nada é enviado ou armazenado.

O que as pessoas costumam precisar depois que o JSON está pronto.