Formatar JSON
Transforme uma linha enorme de JSON em algo legível, ou compacte tudo de volta. Números grandes mantêm todos os dígitos, algo que a maioria dos formatadores online erra sem avisar. Nada fica armazenado.
- Nunca armazenado
- Sem fila, sem espera
- Sem cadastro, sem marca d'água
O JSON formatado aparece aqui.
Como funciona
Cole seu JSON
Ou solte um arquivo .json. O que você cola fica nesta página — nada fica armazenado.
Escolha a indentação
Dois espaços, quatro, tabulações ou minificado em uma só linha. A escolha fica salva para a próxima vez.
Copie ou baixe
Copie o resultado ou salve como arquivo. Se o JSON estiver quebrado, você recebe a linha, a coluna e o caractere.
O que sobrevive à ida e volta
Formatar é interpretar e imprimir de novo, e os números são a única parte mantida como o texto que você digitou. Isso vai além do caso dos inteiros grandes que o aviso contabiliza: qualquer número cuja grafia mais curta em JavaScript seja diferente da sua é reescrito a partir do original, então 1.10 mantém o zero final, 1e5 continua em notação exponencial e um zero negativo continua negativo. Só os inteiros inseguros entram na contagem do aviso, porque é neles que a alternativa seria corrupção silenciosa, e não apenas uma grafia arrumada.
As strings não são mantidas como texto. Os escapes são decodificados quando o documento é lido e escritos do zero quando ele é impresso, então \u0041 volta como A e uma barra com escape volta sem ele. O valor é idêntico e os bytes não, o que só importa em uma situação — e importa muito nela: se algo mais adiante compara dois arquivos JSON byte a byte, passar um deles por um formatador não é uma operação neutra.
Dois comportamentos no nível dos objetos valem a pena conhecer antes de confiar em uma reformatação. Chaves duplicadas são resolvidas em silêncio, e a última vence, exatamente como o parser do próprio navegador as resolve — um documento com dois campos “id” é formatado sem reclamar e volta com um só, e nada avisa que o outro existia. E a ordem das chaves só segue a do seu arquivo para chaves que não são números inteiros: um objeto com “1”, “2” e “name” volta com as chaves numéricas primeiro, em ordem numérica, porque é assim que o próprio JavaScript ordena as propriedades de um objeto. Chaves comuns mantêm a ordem em que você as escreveu.
Quando você precisa de outra coisa
Se o que você tem é um tsconfig.json, uma configuração do ESLint ou um arquivo de configurações do VS Code, esta página vai apontar os comentários e as vírgulas finais em vez de formatar em volta deles — a resposta certa para uma ferramenta de JSON e a ferramenta errada para o seu arquivo. Esses arquivos são JSONC, e o seu editor já os interpreta; na linha de comando, o json5 e o dasel leem esses arquivos sem fingir que são JSON.
Para qualquer coisa além de reindentar, um formatador é o tipo errado de ferramenta. O jq faz em uma expressão o que uma caixa de colar não tem como controlar: jq -S . ordena as chaves de todos os objetos para que duas respostas possam ser comparadas, jq 'del(.token)' remove um campo antes de você mostrar um payload a alguém, e jq -c transforma um array de objetos no JSON Lines que um pipeline espera. Ele também lê um arquivo em vez da área de transferência, o que faz diferença quando o documento é grande demais para selecionar com conforto.
Perguntas frequentes
Meu JSON fica armazenado em algum lugar?
Não. Não há chamada ao servidor nem registro, e nada fica armazenado. Você pode se desconectar da internet depois que a página carregar, e ela continua funcionando. Isso importa aqui mais do que parece: o que as pessoas colam em um formatador online são respostas de API, arquivos de configuração e payloads de erro, e eles costumam carregar tokens, dados de clientes e nomes de hosts internos.
Por que este formatador mantém números grandes exatos quando outros não mantêm?
Porque quase todos os outros os quebram sem avisar. Um número em JavaScript é um float de 64 bits, então só consegue guardar inteiros exatos até 9.007.199.254.740.991. Qualquer coisa maior — o ID de um post do Twitter/X, um snowflake do Discord, um número de conta bancária, uma chave de banco de dados de 64 bits — perde os últimos dígitos no momento em que passa por `JSON.parse`. O número continua parecendo plausível, e é isso que o torna perigoso: 7205759403792793600 vira 7205759403792793000 sem ninguém perceber. Esta página mantém exatamente os dígitos que você colou e informa quantos números precisou proteger.
O que ele faz com um arquivo quebrado?
Mostra onde está o problema, não só que existe um. Você recebe o número da linha, a coluna, a própria linha com um acento circunflexo embaixo do caractere problemático e uma descrição em palavras simples — “uma vírgula final antes de }” em vez de “Unexpected token”. Vírgulas finais, aspas simples, chaves sem aspas e quebras de linha sem escape dentro de strings são os quatro problemas que respondem pela maior parte dos JSON quebrados, e cada um é identificado pelo nome.
Ele funciona com JSON Lines / NDJSON?
Sim, e mantém o formato. JSON Lines é um valor JSON completo por linha — o formato usado em logs e exportações de dados —, e formatá-lo em várias linhas destruiria justamente o que o torna útil. Ele é detectado automaticamente, cada linha é formatada separadamente e o layout de um valor por linha é preservado.
Ele conserta JSON com comentários ou vírgulas finais?
Ele aponta esses problemas com precisão, mas não os aceita em silêncio. Comentários e vírgulas finais não são JSON — são JSON5 ou JSONC, que é o que arquivos de configuração como o tsconfig.json realmente usam. Um formatador que os aceitasse sem avisar entregaria um arquivo que o seu parser rejeitaria depois, o que é pior do que um erro aqui.
Existe limite de tamanho?
A memória disponível, e não um limite que impomos. Documentos de alguns megabytes são formatados na hora; os muito grandes são limitados pelo quanto cabe na memória de uma vez, e não por nada do nosso lado.
Minificar altera meus dados?
Não. Minificar remove apenas os espaços em branco entre os tokens — nunca reordena chaves, nunca muda a formatação dos números, nunca descarta nada. O resultado é interpretado exatamente como o mesmo valor, só que menor.
Bom saber: A formatação é exata — o documento é interpretado e impresso de novo, então tudo o que for interpretado volta a sair. Somente JSON estrito: comentários, vírgulas finais e chaves sem aspas são rejeitados em vez de consertados em silêncio, porque consertá-los exigiria adivinhar. Documentos muito grandes ficam duas vezes na memória durante a formatação.
Coloque esta ferramenta no seu site
Grátis para qualquer blog, página de turma ou artigo de ajuda. Cole um único trecho de código e seus visitantes podem usá-la direto na sua página.
Mais Ferramentas para desenvolvedores
Validador JSON
Descubra exatamente onde o JSON está quebrado
Formatador XML
Indente XML para conseguir ler
Decodificar Base64
Transforme Base64 de volta em texto ou arquivo
Decodificador JWT
Veja o que há dentro de um token, com privacidade
Validador XML
Descubra exatamente onde o XML está quebrado
Codificar Base64
Transforme texto ou um arquivo em Base64