Ir para o conteúdo
jsonbeautifiers
Português

Sobre

Cada ferramenta aqui é uma vista sobre um único parser de JSON, escrito do zero em vez de embrulhado em torno do JSON.parse. Essa decisão é a razão de o site existir.

Por que escrever um parser

Embrulhar o parser nativo é o caminho óbvio, e quase toda ferramenta JSON on-line faz isso. Te dá validação de graça. Também te dá três problemas que não dá para consertar de fora.

Os erros são inúteis. Um parser nativo relata um problema e para. Te dá uma mensagem escrita para um compilador, nenhuma sugestão do que fazer e, em vários runtimes, nenhum número de linha. Quem está com um payload quebrado precisa do caractere exato, do que era esperado ali e da correção. Conseguir isso significa ser dono da varredura.

Ele reescreve os seus dados. Faça o parsing de 12345678901234567890 e serialize de volta: você recebe 12345678901234567000. Nada avisa. Um formatador construído assim mudou o seu payload antes de imprimir qualquer coisa, e para um ID ou um valor monetário isso é um bug sério que não parece nada. O nosso formatador reemite o texto de origem de cada número, então não pode acontecer. A explicação completa está aqui.

Ele não ajuda com entrada que é quase JSON. Vírgulas finais, aspas simples, literais de Python, comentários, um espaço não separável colado de um cliente de chat. Para consertar isso e explicar o que mudou, é preciso detectar com precisão, o que de novo significa ser dono da varredura.

O que isso comprou

  • Erros com linha, coluna, trecho destacado, o que era esperado e uma correção.
  • Todos os erros de um documento relatados de uma vez, em vez de um por tentativa.
  • Números que sobrevivem à formatação exatamente como você colou.
  • Chaves duplicadas relatadas com a posição das duas.
  • Caracteres invisíveis nomeados com precisão. Um espaço não separável é relatado como espaço não separável na linha 4, coluna 12, e não como um token inesperado.
  • Um modo de reparo que conserta o quase-JSON e lista cada mudança, separando os julgamentos das correções seguras.
  • Um parser iterativo, então a profundidade de aninhamento é limitada pela memória e não pela pilha de chamadas.

Aqui privacidade é decisão técnica, não de marketing

Em novembro de 2025, dois dos maiores formatadores JSON on-line vazaram mais de 80.000 colagens salvas, cerca de 5 GB acumulados em cinco anos. Os dados expostos incluíam credenciais do Active Directory, chaves de acesso a nuvem, tokens de acesso pessoal e registros bancários pertencentes a organizações públicas, de saúde e aeroespaciais.

O detalhe instrutivo não é o vazamento. É que um daqueles sites te diz, na página inicial, que os seus dados são validados no navegador, enquanto o botão de upload de arquivo envia o seu arquivo para um servidor. As duas afirmações eram verdadeiras sobre recursos diferentes, e ninguém lendo a página conseguia dizer qual era qual.

Então este site não te pede para confiar numa frase. Toda página é servida com uma lista de permissões connect-src que nomeia um único destino, o endpoint de analytics que conta visualizações de página. Não há endpoint de upload, nem recurso de carregar de URL, nem links salvos, nem contas, nem publicidade, porque cada um desses precisaria de uma exceção larga o bastante para carregar o seu payload. Aqui está como verificar tudo você mesmo.

Como é construído

  • Páginas estáticas, construídas com Astro. Sem renderização no servidor e sem API.
  • O parser, o formatador, o motor de reparo, o escritor de CSV, o parser de XML, o diff e o motor de JSONPath foram todos escritos para este site, e cobertos por uma suíte de testes que roda a cada build.
  • CodeMirror 6 para o editor, carregado sob demanda atrás de um textarea comum que funciona sozinho. O Monaco teria uns 5 MB.
  • js-yaml é a única dependência de terceiros em tempo de execução, carregada só nas duas páginas de YAML. O YAML 1.2 é grande o bastante para que uma implementação parcial aceitasse documentos e produzisse valores errados em silêncio, que é justamente o modo de falha que este site existe para evitar.
  • Todo o parsing e a formatação rodam num Web Worker, então um documento de 10 MB não congela a aba.
  • As fontes são hospedadas aqui e reduzidas a subconjuntos. Nada é buscado de um CDN.

Correções

O argumento do site é que ele é cuidadoso com a correção, o que significa que erros aqui pesam mais do que pesariam em outro lugar. Toda mensagem de erro citada neste site foi produzida executando o parser, não recuperada de memória: strings do V8 no Node v24.15.0 e strings do Python no CPython 3.14.3. As strings do Firefox e do Safari estão deliberadamente ausentes porque não conseguimos executá-las e verificá-las.

Se você encontrar algo errado, nos avise: será corrigido e registrado no changelog.

Quem mantém

Esta seção está deliberadamente em branco em vez de preenchida com um nome que soe plausível. A pesquisa para este site encontrou um concorrente cujo marcador de artigo credita um autor chamado "Roronoa Zoro", cargo "Infrastructure Engineer", que é um personagem fictício de uma série de mangá. Inventar uma pessoa para satisfazer um sinal de confiança é pior do que não ter sinal nenhum, então aqui não há nada até haver algo verdadeiro para colocar.