JSON Toolkit

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.

Iniciante~10 min de leituraPublicado em 2026-10-30Atualizado em 2026-10-30
Capa da FAQ de uso das ferramentas

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:

  1. Abra as ferramentas de desenvolvedor, mude para o painel Network e ative a persistência do log;
  2. Cole algum JSON e clique em "Formatar";
  3. 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:

  1. Espere 10–30 segundos. Na maioria dos casos a thread principal está analisando ou renderizando e se recupera sozinha;
  2. Assim que se recuperar, mude imediatamente para a visão "Minificar" ou recolha a árvore para reduzir os nós de DOM;
  3. 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:

  1. 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;
  2. 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;
  3. 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:

  1. BOM: o UTF-8 salvo pelo Bloco de Notas do Windows inclui um BOM, que alguns analisadores não toleram;
  2. 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";
  3. 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