Formatador JSON
Cole JSON e receba de volta recuado, minificado ou validado. Seus dados ficam nesta página.
Os exemplos substituem temporariamente os dados e as configurações. Você pode restaurar seu trabalho anterior.
Cole ou digite acima para ver o resultado aqui.
Seus arquivos ficam no seu dispositivo
Esta ferramenta roda inteiramente no seu navegador. O que você cola é processado no seu dispositivo e nunca é enviado a um servidor, então é seguro usar com tokens, chaves e textos não publicados.
Exemplo
Exemplo: o JSON de um pedido de loja virtual, com CEP sem aspas e centavos
Um desenvolvedor copia do log o JSON de um pedido: cliente Ana Muster, dois itens, total 159.90 e um id_transacao de 19 dígitos. Na primeira colagem o CEP veio como número, 01310100, e a formatação para: Formatar, 2 espaços.
- A página mostra a mensagem do navegador (em inglês, “Unexpected number in JSON…”) e, embaixo, “Line 3, column 46” com um ^ logo depois do 0 inicial: JSON não aceita número começando com zero.
- CEP, CPF e telefone vão entre aspas, como texto: com “01310-100” entre aspas o pedido é aceito.
- Com “Ordenar as chaves em ordem alfabética” ligado, fica cliente, id_transacao, itens, pedido, status, total; dentro de cada item, preco, qtd, sku. Os itens continuam na ordem original.
- Os números saem como o JavaScript os lê: 59.90 vira 59.9, 159.90 vira 159.9, e o id de 19 dígitos, acima de 2^53, perde os últimos algarismos.
| No JSON colado | Depois de formatar | Por quê |
|---|---|---|
| "cep": 01310100 | erro na linha 3, coluna 46 | número não pode começar com 0 |
| "cep": "01310-100" | "cep": "01310-100" | texto passa intacto |
| "preco": 59.90 | "preco": 59.9 | o zero final não faz parte do número |
| "total": 159.90 | "total": 159.9 | mesmo valor, sem o zero final |
| "id_transacao": 9007199254740993123 | "id_transacao": 9007199254740993000 | inteiro acima de 2^53 |
O pedido formatado tem 331 caracteres e se lê de cima para baixo; minificado, 220, três a menos que os 223 colados, que são os zeros finais. Antes de mandar de volta a um sistema que confere valores, lembre que 159.90 virou 159.9 e que ids longos devem viajar como texto.
Como funciona
- Cole o JSON na caixa: uma resposta de API, um arquivo de configuração, uma linha de log, qualquer coisa que deveria ser JSON válido.
- Escolha Formatar para a versão legível ou Minificar para deixar tudo numa linha. Use o recuo do seu projeto.
- Ligue a ordenação de chaves se quiser as chaves em ordem alfabética: diffs e revisões ficam bem mais legíveis.
- O resultado aparece enquanto você digita. Se a entrada for inválida, a mensagem aponta a linha e a coluna do problema.
Perguntas frequentes
- O que exatamente ele verifica?
- A sintaxe JSON estrita da RFC 8259: chaves entre aspas duplas, sem vírgula sobrando, sem comentários, sem aspas simples, sem chave sem aspas. Se o texto for notação de objeto do JavaScript ou JSON5, será marcado como inválido no primeiro caractere fora do padrão.
- Ordenar as chaves muda o significado?
- Nos objetos, não. Um objeto JSON é desordenado por definição: quem consome não deve confiar na ordem das chaves. Arrays nunca são reordenados, porque ali a ordem significa algo. A ordenação vale recursivamente para todos os objetos aninhados.
- Por que números grandes mudam depois de formatar?
- Números JSON são lidos como ponto flutuante do JavaScript: acima de 2^53 os inteiros perdem precisão e decimais muito longos são arredondados. Escapes como \u00e9 aparecem como o caractere em si. Se precisa de inteiros exatos, mantenha como texto.
- Por que dá erro no CEP, no CPF ou no telefone?
- Porque em JSON um número não pode começar com zero: “cep”: 01310100 é recusado no segundo algarismo, e a página aponta a linha e a coluna. Esses dados são códigos, não quantidades: escreva entre aspas, como “01310-100” ou “012.345.678-90”, e eles passam exatamente como estão.
- O valor 10.50 virou 10.5. Perdi os centavos?
- Não: 10.50 e 10.5 são o mesmo número, e um número JSON não guarda zeros finais. Se o sistema que recebe precisa do texto exato “10.50”, mande o valor entre aspas. E a vírgula decimal do português não vale em JSON: “valor”: 10,50 é recusado; use ponto, 10.50.
- Alguma coisa é enviada para um servidor?
- Não. Roda no navegador, então o que você colar fica no seu computador.