tools / json
json/
Formate, minifique, valide, escape e ordene as chaves de JSON, com validação em tempo real enquanto você digita.
Entrada
Resultado
Perguntas frequentes
O que fazer quando a validação de JSON mostra "Unexpected token" ou "JSON inválido"?
Na maioria das vezes o texto é um literal de JavaScript ou de Python, e não JSON padrão. Causas típicas: aspas simples, chaves sem aspas duplas, vírgula sobrando depois do último item, comentários // ou /* */, NaN ou undefined (e True ou None do Python) e aspas curvas copiadas de um aplicativo de chat. A posição informada é onde o analisador travou; a causa real pode estar um pouco antes dela.
Como leio a linha e a coluna na mensagem de erro? Por que o restante está em inglês?
Linhas e colunas começam em 1. A posição vem do erro do navegador, quando ele a informa; quando não informa (no Safari, por exemplo), a ferramenta varre o texto por conta própria para achar o primeiro caractere inválido. O texto depois de "·" é a mensagem original do JSON.parse do navegador, em inglês; a redação varia entre navegadores e não é traduzida aqui.
Como transformo os escapes \u4e2d\u6587 de um JSON em texto legível?
Basta clicar em "Formatar" ou "Minificar". A ferramenta lê o JSON e o escreve de volta, e as sequências \uXXXX dentro das strings viram os caracteres reais. Se o conteúdo inteiro for uma string escapada (entre aspas e cheia de \"), use "Remover escape" primeiro. No sentido contrário, transformar texto não ASCII em \u não é possível; "Escapar" trata apenas aspas, barras invertidas, quebras de linha e caracteres semelhantes.
Qual a diferença entre "Escapar" e "Remover escape"? Como restaurar uma string cheia de \" retornada por uma API?
"Escapar" transforma o texto em algo que pode ficar dentro de uma string (uma barra invertida antes das aspas, e as quebras de linha viram \n), sem as aspas externas. "Remover escape" faz o contrário. Para uma saída de API cheia de \", escolha "Remover escape"; funciona com ou sem as aspas externas. Depois clique em "⇄ Usar resultado como entrada" e a ferramenta muda para "Formatar" automaticamente.
Os números longos (como IDs snowflake) mudam no final depois de formatar. O que fazer?
Inteiros acima de 2^53 (9007199254740991) não podem ser representados com exatidão em JavaScript, então o JSON.parse já perdeu precisão ao ler e os últimos dígitos costumam virar zeros. Ao formatar ou minificar, a página mostra um aviso listando até 5 posições. Para preservar esses valores, peça à fonte dos dados que gere esses IDs como strings (entre aspas duplas).
Depois de formatar, 1.0 virou 1 e uma chave duplicada sumiu. Por quê?
Formatar e minificar fazem o parse do JSON e o escrevem de volta, então os números são reescritos no estilo do JavaScript: 1.0 vira 1, 1E2 vira 100, 0.10 vira 0.1 e -0 vira 0. Os valores continuam os mesmos. Se um objeto tiver a mesma chave duas vezes, só a última é mantida, sem aviso.
Como a opção "Ordenar chaves" ordena? Os arrays mudam?
As chaves de todos os níveis são ordenadas pelo código do caractere, com maiúsculas antes de minúsculas, e outros alfabetos pelo ponto de código, não pela ordem do dicionário. Os itens dos arrays mantêm a ordem. Chaves puramente numéricas (como "2" e "10") são uma exceção: o JavaScript sempre as coloca primeiro, em ordem numérica, então elas vão para o início mesmo com "Ordenar chaves" desligado.
Qual o tamanho máximo do JSON? Meus dados são enviados?
Não há um limite fixo de tamanho. Acima de 1 milhão de caracteres, o processamento é adiado em cerca de 0,6 segundo depois que você digita, e textos muito grandes são limitados principalmente pela memória do navegador. Tudo roda no seu navegador; a página não envia requisições com o seu conteúdo e não guarda o que você digita.