FAQ de uso das ferramentas: dados, arquivos e exportação
Resumo: Os dados são enviados, quão grande um arquivo funciona, algo fica armazenado localmente, por que o chinês vira escapes: dez perguntas que explicitam as fronteiras reais de uma ferramenta JSON online.

Resumo da ópera: análise, formatação, diff e consulta rodam inteiramente no seu navegador e continuam funcionando offline; limpe o histórico do localStorage após lidar com dados sensíveis; e acima de 10 MB mude para ferramentas de streaming na linha de comando em vez de colar o arquivo no navegador.
Antes de colar um payload sensível em uma ferramenta online, saiba para onde ele vai. Este artigo cobre apenas o comportamento em tempo de execução da ferramenta, não a sintaxe.
1. Dados e privacidade
O formatador JSON online envia meus dados a um servidor?
Não. Análise, formatação, minificação, diff e consulta acontecem todas no navegador, e a página nunca envia nada que você cola a um servidor de aplicação.
Você não precisa ler uma declaração de privacidade para saber se uma ferramenta online envia dados; o painel de rede do navegador basta:
- Abra as ferramentas de desenvolvedor, mude para o painel Network e ative a persistência do log;
- Cole algum JSON e clique em "Formatar";
- Observe se aparece uma nova requisição XHR ou fetch, e se o corpo dela contém seu conteúdo.
Para uma ferramenta genuinamente local, esta etapa mostra apenas requisições de ativos estáticos. Inversamente, se uma única ação de formatação produz POST /api/format
cujo corpo é o seu texto original, então os dados já saíram do navegador, independentemente do que a página afirme.
Toda ferramenta deste site é uma implementação puramente frontend, e a saída de build não contém API de servidor. Depois de ficar offline, uma atualização que usa o cache ainda funciona, o que também é a forma mais direta de saber se algo é "totalmente local".
Ainda consigo usá-la offline?
Sim, desde que a página já tenha sido carregada uma vez.
Os ativos do site são baixados para o cache do navegador na primeira visita, então mesmo sem rede depois, formatação, minificação, conversão JSON5 e consultas JSONPath continuam funcionando. Só falham os recursos dependentes de rede, como verificar uma nova versão ou baixar o instalador do desktop.
O teste offline é igualmente uma boa forma de verificar que "os dados nunca saem": se tudo quebra no momento em que você desconecta, toda ação estava falando com um servidor.
Algum dado é armazenado localmente? Como limpo?
Sim, mas apenas no localStorage do navegador atual, e apenas histórico e configurações de interface.
- Histórico: as últimas 100 entradas processadas em ordem cronológica inversa, usadas para recordar os dados colados anteriormente;
- Configurações de interface: tema, idioma, preferências de indentação e assim por diante;
- Não armazenado: o arquivo em si, registros de upload ou qualquer coisa que carregue uma identidade.
Há três formas de limpar, da mais restrita à mais ampla:
| Método | Escopo | Quando usar |
|---|---|---|
| "Limpar histórico" na página de histórico | Apaga apenas o histórico, mantém as configurações | Após lidar com dados sensíveis |
Executar localStorage.clear() nas ferramentas de desenvolvedor |
Todos os dados locais deste site | Diagnosticar configurações anômalas |
| "Limpar dados de navegação" do navegador para este site | Cookies, cache e armazenamento juntos | Antes de usar um computador compartilhado |
Ao lidar com dados de produção em um computador compartilhado, limpe o histórico ao terminar em vez de apenas fechar a aba — o localStorage não desaparece quando uma aba fecha.
Por que caracteres chineses viraram \u4e2d\u6587?
Porque o recurso "escape" converte caracteres não-ASCII em sequências de escape Unicode. É um comportamento deliberado, não mojibake.
\u4e2d é o ponto de código do caractere 中 (U+4E2D). As duas formas são semanticamente idênticas em JSON e são analisadas na mesma string:
{
"escaped": "\u4e2d\u6587",
"plain": "中文"
}
Quando o escaping é necessário? Ao embutir JSON em um sistema antigo que só aceita ASCII, ao escrevê-lo em um cabeçalho HTTP ou ao aninhá-lo dentro de outra string. Quando não é necessário? A maioria dos transportes de API e do armazenamento em arquivo não precisa; armazenar chinês diretamente como UTF-8 economiza bytes — um caractere chinês tem 3 bytes, e 6 bytes uma vez escapado.
Se você vê chinês virar \u4e2d, verifique primeiro se você clicou no botão "Escape" em vez de suspeitar que a codificação está quebrada.
2. Arquivos e tamanho
Que tamanho de arquivo é suportado?
Não há limite rígido no lado do navegador; os limites reais vêm de três lugares:
| Etapa | Gargalo aproximado | Sintoma |
|---|---|---|
| Colar em uma caixa de texto | 1–5 MB | A entrada engasga após colar, atraso do cursor |
JSON.parse |
50–100 MB | A thread principal bloqueia por segundos, página sem resposta |
| Renderização em árvore | 10k–20k nós | Quadros perdidos ao expandir, rolagem congela |
Em outras palavras, um arquivo de dezenas de MB "pode ser analisado" mas "não é utilizável". Quando você realmente precisa processar esses dados, o movimento certo não é procurar uma ferramenta online mais forte, mas mudar para streaming (veja FAQ de desempenho e segurança).
Regra geral: abaixo de 2 MB uma ferramenta online permanece fluida; 2–10 MB significa aceitar um ou dois engasgos; acima de 10 MB, prefira um script local.
O navegador congela após eu colar. E agora?
Não atualize primeiro — atualizar perde o conteúdo e você precisa colar de novo. Resgate nesta ordem:
- Espere 10–30 segundos. Na maioria dos casos a thread principal está analisando ou renderizando e se recupera sozinha;
- Assim que se recuperar, mude imediatamente para a visão "Minificar" ou recolha a árvore para reduzir os nós de DOM;
- Copie o conteúdo para um arquivo local e mude para a linha de comando:
# Olhe a estrutura apenas das primeiras 100 linhas, para evitar carregar tudo
head -c 200000 data.json | jq . | head -n 100
# Conte entradas com uma ferramenta de streaming, sem carregá-las na memória
jq -c '.items[]' data.json | wc -l
Da próxima vez que encontrar um arquivo grande, rode wc -c primeiro para ver a contagem de bytes e depois decida se deve colá-lo em um navegador.
Por que a formatação não muda depois que colo?
Três causas comuns, ordenadas por frequência:
- A entrada já está minificada e não tem erros de sintaxe: formatar só ajusta a indentação, então se o original realmente tem duas linhas, ele continuará tendo duas linhas depois — quebras de linha dentro de strings não são expandidas;
- O conteúdo não é JSON: por exemplo você colou um literal de objeto JavaScript (chaves sem aspas, aspas simples), e o analisador relata um erro em vez de formatar;
- Você clicou no botão errado: minificar e formatar vão em direções opostas, e minificar remove toda a indentação.
Como saber: olhe a contagem de caracteres no canto superior direito da área de saída. Após formatar a contagem deve aumentar (indentação e quebras de linha extras); se diminuiu, você rodou minificar.
3. Entrada e saída
Como exporto o resultado para um arquivo?
Três formas, ordenadas por confiabilidade:
| Método | Ação | Quando usar |
|---|---|---|
| Botão de download | Clique em "Download" para produzir um arquivo .json |
Resultados grandes que precisam ser arquivados |
| Copiar para a área de transferência | Clique em "Copiar" | Resultados pequenos que você cola direto de volta no código |
| Selecionar tudo e copiar manualmente | Selecione a área de saída e pressione Ctrl/Cmd + C |
O fallback quando o botão de copiar falha |
O arquivo baixado é codificado em UTF-8 sem BOM por padrão. Isso importa: JSON com BOM quebra de vez em muitos analisadores (veja a seção sobre BOM na FAQ de sintaxe e formatos).
JSON5 e JSONC são suportados?
Sim, mas distinga "análise" de "saída".
- No lado da entrada você pode colar JSON5 (aspas simples, chaves sem aspas, comentários, vírgulas finais, números hexadecimais) ou JSONC (apenas comentários);
- No lado da saída você pode converter para JSON padrão, ou converter JSON padrão de volta para JSON5 para facilitar a edição manual.
Sempre emita JSON padrão ao cruzar sistemas. JSON5 é um dialeto para humanos escrevendo configuração; um corpo de requisição com
Content-Type: application/json que contém comentários ou vírgulas finais normalmente será rejeitado pelo servidor.
4. Ambiente e compatibilidade
Funciona em um celular?
Sim. A interface se reorganiza em uma coluna, e formatação, minificação, diff e JSONPath são todos mantidos.
Mas lidar com arquivos grandes em um celular é uma experiência ruim: o teclado virtual cobre o conteúdo, selecionar texto é difícil, e o navegador pode descartar a página quando você troca de app, perdendo seu conteúdo. Aceitável como emergência, mas faça no desktop no dia a dia.
Por que o mesmo arquivo abre no Chrome mas dá erro no Safari?
Normalmente não é diferença de navegador, mas de codificação. Depure nesta ordem:
- BOM: o UTF-8 salvo pelo Bloco de Notas do Windows inclui um BOM, que alguns analisadores não toleram;
- Fins de linha: misturar CRLF e LF não afeta o JSON em si, mas desloca os números de linha relatados no erro, então parece que "a posição do erro está errada";
- Caracteres invisíveis: texto copiado de uma página web pode conter espaços de largura zero (U+200B), invisíveis a olho nu mas suficientes para quebrar a correspondência de chaves.
Um comando enxerga isso:
# Olhe o hexadecimal dos primeiros 16 bytes; um EF BB BF inicial significa que há um BOM
head -c 16 data.json | xxd
5. Referência rápida
| Pergunta | Conclusão |
|---|---|
| Envia dados | Não, tudo é processado localmente no navegador, e funciona offline |
| Onde os dados são armazenados | localStorage, apenas histórico e configurações, nunca arquivos |
| Que tamanho de arquivo é razoável | Fluido abaixo de 2 MB; acima de 10 MB mude para a linha de comando |
O chinês virou \u |
Você clicou em escape; equivalente mas mais volumoso, e normalmente desnecessário |
| Travou, e agora | Espere a recuperação → recolha a árvore → copie para fora e use jq |
| A exportação é livre de BOM | Sim, UTF-8 sem BOM |
| Comentários são suportados | JSON5/JSONC no lado da entrada; emita JSON padrão |