Ir para o conteúdo
jsonbeautifiers
Português

Um JSON beautifier que nunca vê o seu JSON.

Cole um payload e receba de volta legível. Tudo roda no seu navegador, então respostas de produção, tokens e arquivos de configuração ficam na sua máquina.

Filtrar com JSONPath

Sintaxe da RFC 9535. O resultado substitui o painel a partir do qual você abriu esta janela.

 

Nada do que você cola sai do seu navegador. A lista de permissões connect-src transforma isso em uma garantia do navegador, e não em uma promessa. Confira você mesmo

Quase toda ferramenta JSON pede a sua confiança. Esta deixa você conferir.

Em novembro de 2025, dois dos maiores sites de formatação vazaram mais de 80.000 colagens salvas: credenciais do Active Directory, chaves de nuvem, tokens de acesso e registros bancários, de organizações públicas, de saúde e aeroespaciais. A página inicial deles dizia que os seus dados eram tratados no navegador. O upload de arquivo deles enviava para um servidor.

O cabeçalho à direita é o que este site envia em toda resposta. A linha connect-src dele é uma lista de permissões que nomeia um único destino, o endpoint de analytics que conta visualizações de página. Toda outra requisição que esta página pudesse tentar é recusada: sem fetch, sem XHR, sem WebSocket, sem beacon levando o seu payload para lugar nenhum. Não é uma afirmação sobre as nossas intenções. É uma regra que o navegador impõe a qualquer código que rode aqui, incluindo código que a gente venha a acrescentar por engano.

Cabeçalhos de resposta jsonbeautifiers.com
Content-Security-Policy:
  default-src 'self';
  connect-src https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com;
  script-src 'self' https://www.googletagmanager.com;
  style-src 'self' 'unsafe-inline';
  img-src 'self' data: https://*.google-analytics.com https://*.googletagmanager.com;
  font-src 'self';
  form-action 'none';
  frame-ancestors 'none';
  base-uri 'self';
  object-src 'none';
  worker-src 'self' blob:

Referrer-Policy: no-referrer
X-Content-Type-Options: nosniff
Permissions-Policy: interest-cohort=(), browsing-topics=()

Feito para os payloads que quebram as outras ferramentas.

Todo exemplo abaixo é saída real deste parser, e cada um deles é algo que um formatador que embrulha o JSON.parse erra.

Números grandes sobrevivem

A formatação reemite exatamente os dígitos que você colou. Uma ferramenta que faz parsing para float e serializa de volta já mudou o seu ID Snowflake antes de você apertar o botão.

Aqui

{ "id": 12345678901234567890 }

Ida e volta pelo JSON.parse

{ "id": 12345678901234567000 }

Caracteres invisíveis, nomeados

Cole de um documento ou de um cliente de chat e você recebe caracteres que não consegue ver. Outras ferramentas dizem Unexpected token.

4:8  Invalid whitespace:
     no-break space (U+00A0).

Colchetes não fechados, localizados

Quando um arquivo está truncado, a informação útil é onde cada colchete aberto começou, não que o documento acabou.

The document ends while 3 brackets
are still open: { opened at line 1,
column 1; [ opened at line 2, column 8;
{ opened at line 3, column 5.

Reparos que se explicam

O modo tolerante conserta o quase-JSON e lista cada mudança, separando as seguras dos julgamentos.

2:3  Converted a single-quoted string
     to a double-quoted JSON string.
5:11 Quoted 02134 as the string
     "02134", because dropping the
     leading zero would change a
     zip code.

Chaves duplicadas avisadas

A RFC 8259 deixa duplicatas indefinidas e a maioria dos parsers fica com a última em silêncio.

3:3  Duplicate key "email",
     first defined at line 2,
     column 3.

Arquivos grandes sem congelar a aba

Parsing e formatação rodam num Web Worker, então a interface continua respondendo enquanto um documento grande é processado. Os números abaixo são tempo de formatação, medidos em duas execuções numa máquina de mesa, então trate-os como faixa e não como benchmark. A 10 MB isso é trabalho suficiente para travar de vez uma thread principal, que é exatamente por que aqui não acontece numa.

9 to 13 ms

100 KB

70 to 119 ms

1 MB

0.6 to 0.8 s

10 MB

Todas as ferramentas

Formatar e conferir

Transformar

Converter

O que você recebe em vez de "Unexpected token"
{
  "user": "priya",
  "roles": ["admin",],
}

3:20 Vírgula final antes de ].

Tire a vírgula antes do colchete de fechamento. Vírgulas finais são legais em JavaScript e em JSON5, mas não em JSON.

Todo erro de JSON, explicado direito.

O V8 reescreveu quase todas as suas mensagens de erro de JSON em 2022, e a maior parte do que se escreve sobre elas na internet ainda ensina a redação antiga. Estas páginas trazem as strings atuais exatas, medidas rodando os parsers, com as causas reais ordenadas pela frequência com que de fato acontecem.

Todas as páginas de erros

Vale saber

O que um JSON beautifier faz de verdade

Um JSON beautifier lê um documento, faz o parse dele até obter uma árvore de objetos, arrays, strings, números, booleanos e nulos, e escreve essa árvore de volta com um valor por linha e uma indentação constante. A palavra importante é parse. Ele não está inserindo quebras de linha depois de cada vírgula com uma expressão regular, que é como fazem muitos trechos de código espalhados pela web, e que destrói em silêncio qualquer string que contenha uma vírgula ou uma chave.

Isso tem uma consequência que aparece de imediato: um documento que não é JSON válido não pode ser embelezado. Não há árvore para imprimir. É por isso que aqui embelezar e validar são a mesma operação e não dois botões, e por isso um texto colado inválido devolve linha, coluna e uma descrição do que era esperado, em vez de um painel de saída vazio.

Espaços em branco fora das strings não significam nada em JSON. A RFC 8259 permite espaço, tabulação, retorno de carro e quebra de linha entre dois tokens quaisquer, então reformatar não pode mudar o que um documento significa. O espaço dentro de uma string é dado e fica exatamente como estava. Um formatador que trabalha sobre texto em vez de sobre uma árvore sintática não distingue esses dois casos, e essa é a forma mais comum de a formatação corromper um payload.

A ordem das chaves é preservada. A especificação considera os objetos como não ordenados, então nada deveria depender disso, mas a ordem em que você colou é quase sempre a que um diff, uma revisão de código ou uma pessoa lendo espera, e reordenar chaves deixa qualquer comparação posterior ruidosa sem ganho nenhum.

Usar o JSON beautifier online

Cole no painel da esquerda e aperte Embelezar. O documento formatado aparece à direita, pronto para copiar ou baixar. Não há conta, não há etapa de upload, não há cota diária e não há paywall em parte alguma, que é o que a maioria das pessoas quer dizer ao procurar por JSON beautifier online grátis e não pela versão de teste de um produto de desktop.

A indentação padrão é de dois espaços, que é onde a maioria dos ecossistemas e dos guias de estilo acabou parando. Quatro espaços e tabulações também estão disponíveis se o seu repositório já tomou essa decisão por você, e a escolha é lembrada localmente no navegador em vez de em um servidor, porque não existe servidor algum para lembrá-la.

Tudo roda em um Web Worker, então a interface continua respondendo enquanto um documento é analisado. Um payload de 100 KB é formatado em cerca de 9 a 13 ms, 1 MB em 70 a 119 ms, e 10 MB em cerca de 0,6 a 0,8 segundo, medido em uma máquina de mesa ao longo de duas execuções. Trate isso como uma faixa e não como um benchmark, mas o formato é o que importa: 10 MB são trabalho suficiente para congelar por completo uma thread principal, e aqui isso não roda em uma.

Depois da primeira visita a página fica em cache, então este JSON beautifier online continua funcionando com a rede desconectada. Não é um truque de service worker. É o resultado natural de uma página estática que faz o seu trabalho localmente: sem rede, o ping do analytics simplesmente falha, e todas as ferramentas seguem funcionando, porque nenhuma delas precisava de um servidor para começar.

Um JSON beautifier e editor, não uma caixa de mão única

A maioria dos formatadores é uma área de texto e um botão. Entra o texto colado, sai o texto formatado, e se o documento estava quebrado você volta ao seu próprio editor para adivinhar. O painel daqui é um editor de código de verdade, com realce de sintaxe, correspondência de chaves, dobramento de código, busca incremental e marcadores de erro na própria linha, então você pode consertar o que colou e reformatar sem sair da página.

O dobramento importa mais do que parece. Um arquivo de configuração de 4.000 linhas não fica legível só porque está indentado. O que o torna realmente legível é recolher todos os ramos exceto aquele que interessa, e isso é uma propriedade do editor, não do formatador.

Se você quiser o mesmo documento como uma árvore recolhível em vez de texto, o visualizador de JSON mostra assim. A validação relata todos os problemas em vez de parar no primeiro. O reparo lida com quase-JSON, como aspas simples, vírgulas finais e chaves sem aspas, e lista cada mudança feita para que você possa rejeitar as que foram decisões discutíveis e não correções.

Quem procura o melhor visualizador e JSON beautifier online normalmente não está perguntando sobre indentação, que toda ferramenta acerta. Está perguntando sobre os documentos que quebram as ferramentas: inteiros maiores do que o JavaScript consegue guardar, chaves duplicadas e caracteres invisíveis colados de um cliente de chat ou de um processador de texto. Isso é tratado aqui, está descrito acima com saída real, e é a única parte sobre a qual vale a pena discutir.

Formatar JSON no Notepad++, no Sublime Text e no VS Code

Uma aba do navegador nem sempre é onde você quer que isso aconteça. Se o arquivo já está aberto no seu editor, o JSON beautifier mais rápido é o que está preso a uma tecla lá.

O Notepad++ não traz formatador de JSON. A resposta habitual é o plugin JSTool: abra Plugins, depois Plugins Admin, procure JSTool, instale, reinicie, e o comando aparece em Plugins, JSTool, JSFormat. Funciona, e para payloads do dia a dia é a ferramenta certa. Saiba que o JSTool faz o parse dos números como floats de 64 bits, então um ID no estilo Twitter ou Snowflake acima de 9007199254740991 volta com dígitos diferentes dos que entraram, sem avisar.

O Sublime Text usa o pacote Pretty JSON, instalado pelo Package Control e associado a Ctrl+Alt+J por padrão. Ele formata através do Python, o que significa que inteiros grandes sobrevivem exatos, uma vantagem real sobre as opções baseadas em JavaScript. Em compensação, descarta chaves duplicadas sem dizer nada, ficando com a última.

O VS Code não precisa de plugin algum. Formatar Documento, que é Shift+Alt+F no Windows e no Linux e Shift+Option+F no macOS, formata qualquer arquivo que o editor reconheça como JSON. Há também um comando Format JSON na paleta.

O que nenhum deles entrega é um diagnóstico. Eles formatam um documento válido e recusam um inválido, o que é ótimo até o dia em que o documento é inválido e tem 40.000 linhas. É para esse caso que esta página foi feita, e também para uma máquina em que você não tem permissão de instalar plugins.

Chrome, Firefox e por que nenhuma extensão é necessária

Uma extensão de JSON beautifier para Chrome faz algo genuinamente útil: intercepta respostas servidas como application/json e as mostra formatadas e recolhíveis na barra de endereços, de modo que uma API que você está explorando fica legível sem passar por um formatador. O Firefox faz isso de forma nativa desde a versão 44 e não precisa de extensão alguma.

Vale ler o custo antes de instalar uma. Para reescrever a página de qualquer API que você visite, a extensão precisa pedir permissão para ler e alterar os seus dados em todos os sites, que é a permissão mais ampla que o Chrome concede. Essa permissão cobre o seu banco, o seu e-mail e o console de administração da sua empresa, e persiste através de cada atualização silenciosa que a extensão publicar depois. Uma extensão de JSON beautifier é algo razoável de instalar vindo de um mantenedor em quem você tem motivos para confiar, e algo ruim de instalar porque era o primeiro resultado.

Esta página não precisa de nada disso. Funciona igual no Chrome, no Firefox, no Safari e no Edge, não instala nada e não detém permissão alguma sobre nenhum outro site que você visita, porque uma página não é uma extensão: ela consegue ler a si mesma e mais nada. Colar é uma tecla a mais do que uma extensão que intercepta, e é toda a diferença.

Formatar JSON no seu próprio código: HTML e React

Você não precisa de uma biblioteca para isso. JSON.stringify aceita um terceiro argumento que controla a indentação, e existe em todo runtime JavaScript: JSON.stringify(valor, null, 2) indenta com dois espaços, e passar uma string em vez de um número, como em JSON.stringify(valor, null, "\t"), indenta com tabulações.

É na hora de jogar o resultado dentro de uma página que um JSON beautifier em HTML dá errado. A saída precisa ficar dentro de um elemento <pre> ou cada sequência de espaços colapsa e você desfez a formatação, e precisa passar por escape antes de ser inserida como HTML. Caso contrário, um valor de string que contenha </script> ou um sinal de menor está sendo entregue ao parser como marcação, o que é um buraco de cross site scripting com passos extras.

No React esse escape já está feito para você. <pre>{JSON.stringify(dados, null, 2)}</pre> é, por inteiro, um JSON beautifier em React para fins de depuração, e como o React faz escape de texto interpolado por padrão, é seguro mesmo com entrada não confiável. A regra é simplesmente nunca recorrer a dangerouslySetInnerHTML para exibir JSON, que é a única maneira de perder essa garantia.

A ressalva que vale para todos esses casos é a precisão numérica. JSON.parse transforma todo número em um double, então um identificador acima de 2^53-1 já é o número errado antes mesmo de JSON.stringify vê-lo, e formatação nenhuma traz os dígitos de volta. Se o seu payload carrega IDs grandes, leia antes o que acontece com um inteiro acima de 2^53-1. O beautifier desta página reemite os dígitos exatos que você colou, que é a razão de a saída dele e uma ida e volta por JSON.parse nem sempre coincidirem.

Perguntas sobre o JSON beautifier

O que é um JSON beautifier?
Um JSON beautifier faz o parse de um documento JSON e o reescreve com indentação constante e um valor por linha, de modo que um payload que chegou como uma única string contínua fica legível. Como ele faz o parse em vez de reescrever texto, também diz quando o documento não é JSON válido, e onde.
Como usar um JSON beautifier?
Cole ou digite o seu JSON no painel da esquerda e aperte Embelezar. O documento formatado aparece à direita com indentação de dois espaços, quatro espaços ou tabulação, e você pode copiar, baixar ou continuar editando ali mesmo. Se o que você colou não for JSON válido, você recebe a linha, a coluna e o que era esperado naquele ponto, porque a ferramenta precisa fazer o parse do documento antes de conseguir imprimir um.
Qual é a melhor ferramenta JSON beautifier?
Toda ferramenta indenta corretamente, então não é essa a pergunta que vale a pena. Compare pelo que quebra: se inteiros acima de 2^53-1 sobrevivem intactos, se chaves duplicadas são relatadas, se caracteres invisíveis são nomeados em vez de aparecerem como token inesperado, e se a entrada é enviada a um servidor. Essas quatro respostas separam as ferramentas equivalentes das que não são.
Este JSON beautifier online é gratuito?
Sim. Não há conta, não há cadastro, não há limite diário e não há plano pago. Toda ferramenta do site roda no seu navegador, então não existe custo de servidor a recuperar nem nada a medir.
Meu JSON é enviado para algum lugar?
Não. A página envia um cabeçalho Content Security Policy cuja linha connect-src é uma lista de permissões, e o único destino nela é o Google Analytics, que conta visualizações de página e nunca toca no editor. Toda outra requisição de saída é recusada pelo navegador: sem fetch, sem XMLHttpRequest, sem WebSocket, sem beacon que pudesse levar o seu documento. Quem impõe isso é o navegador, em vez de sermos nós prometendo, e você pode conferir na aba Rede das ferramentas de desenvolvedor.
Posso formatar JSON no Notepad++?
O Notepad++ não tem formatador de JSON embutido. Instale o plugin JSTool por Plugins, depois Plugins Admin, reinicie e use Plugins, JSTool, JSFormat. Um aviso: o JSTool faz o parse dos números como floats de 64 bits, então IDs inteiros acima de 9007199254740991 voltam com os dígitos alterados.
Como eu formato JSON no Chrome?
Três caminhos, na ordem do quanto você precisa instalar. Cole nesta página, que não exige nada. Abra a requisição nas ferramentas de desenvolvedor e veja a aba Visualização do painel Rede, que já formata uma resposta JSON sozinha. Ou instale uma extensão que reformata respostas application/json automaticamente, a única das três que custa uma permissão sobre todos os sites que você visita.
Preciso de uma extensão de JSON beautifier para Chrome?
Para JSON colado, não. Uma extensão serve para uma coisa que esta página não faz, que é formatar automaticamente uma resposta de API na barra de endereços, mas para isso ela precisa pedir permissão para ler e alterar os seus dados em todos os sites que você visita. Se você só precisa embelezar JSON que já tem, uma página que não detém permissão alguma é o risco menor.
Funciona como JSON beautifier no Firefox?
Sim, e também no Chrome, no Safari e no Edge. O Firefox ainda formata respostas JSON nativamente no próprio visualizador desde a versão 44, então para respostas de API abertas direto no navegador você também não precisa instalar nada lá.
Como eu formato JSON no VS Code?
O VS Code não precisa de extensão para isso. Abra o arquivo, confira se o modo de linguagem na barra de status diz JSON e execute Formatar Documento: Shift+Alt+F no Windows e no Linux, Shift+Option+F no macOS. Para um trecho solto em vez de um arquivo salvo, cole em uma aba nova sem título, defina a linguagem como JSON e formate ali.
Como eu formato JSON no Sublime Text?
Instale o pacote Pretty JSON pelo Package Control e aperte Ctrl+Alt+J. Ele formata através do Python, então inteiros grandes mantêm os dígitos exatos, mas descarta chaves duplicadas em silêncio e fica só com a última.
Como eu formato JSON em HTML ou React?
Use JSON.stringify(valor, null, 2) e renderize dentro de um elemento pre para que o espaçamento seja preservado. Em HTML puro você precisa fazer escape do resultado antes de inseri-lo, ou uma string contendo marcação vira um buraco de cross site scripting. No React basta escrever a expressão dentro de um elemento pre, porque o React faz escape de texto interpolado automaticamente.
Dá para usar como JSON beautifier e editor?
Sim. O painel de entrada é um editor de código completo, com realce de sintaxe, correspondência de chaves, dobramento, busca incremental e marcadores de erro na linha, então você pode consertar um documento quebrado ali mesmo e reformatá-lo sem levá-lo para outra ferramenta.
Funciona como JSON beautifier e visualizador?
Os dois, em duas páginas. Esta formata o documento como texto dentro de um editor. O visualizador de JSON mostra o mesmo documento como uma árvore recolhível, que é a melhor visão quando você está caçando um valor dentro de algo muito aninhado em vez de ler o payload inteiro.
Existe um JSON beautifier para download?
Aqui não há instalador e você não precisa de um. A página é estática e fica em cache depois da primeira visita, então continua funcionando com a rede desligada, que é para o que um download costuma servir. Se você quer um formatador que more na sua máquina, o VS Code já traz um, e jq ou python -m json.tool fazem isso pelo terminal.
Existe um JSON beautifier de código aberto no GitHub?
Vários, e são a resposta certa quando a formatação precisa acontecer em um build e não no navegador. O jq formata pela linha de comando com jq . arquivo.json, o Prettier formata JSON junto com todo o resto de um repositório, e o Python traz json.tool na biblioteca padrão, sem instalar nada.
Que tamanho de arquivo este JSON beautifier aguenta?
Dez megabytes são formatados em cerca de 0,6 a 0,8 segundo em uma máquina de mesa, e arquivos maiores funcionam até o navegador ficar sem memória, o que acontece perto dos 512 MB com qualquer ferramenta. O parse roda em um Web Worker, então a página continua respondendo enquanto trabalha.