Nouplo

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.

0 caracteres
Resultado
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.

  1. 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.
  2. CEP, CPF e telefone vão entre aspas, como texto: com “01310-100” entre aspas o pedido é aceito.
  3. 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.
  4. 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 46número não pode começar com 0
"cep": "01310-100" "cep": "01310-100"texto passa intacto
"preco": 59.90 "preco": 59.9o zero final não faz parte do número
"total": 159.90 "total": 159.9mesmo valor, sem o zero final
"id_transacao": 9007199254740993123 "id_transacao": 9007199254740993000inteiro 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

  1. 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.
  2. Escolha Formatar para a versão legível ou Minificar para deixar tudo numa linha. Use o recuo do seu projeto.
  3. Ligue a ordenação de chaves se quiser as chaves em ordem alfabética: diffs e revisões ficam bem mais legíveis.
  4. 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.

Ferramentas relacionadas