Processamento local e privacidade de dados
O processamento dos dados inseridos nesta ferramenta ocorre inteiramente no lado do cliente. Seu JSON é processado diretamente no seu navegador. Nada é enviado para o BroBroGo. Isso significa que a validação, a formatação e a minificação de arquivos ocorrem localmente no computador do usuário, sem tráfego de dados de entrada para servidores externos.
Validação e correção de erros de sintaxe
A validação rigorosa é essencial para garantir que o JSON esteja em conformidade com as especificações formais da linguagem. Quando um arquivo ou texto inserido apresenta falhas estruturais, a ferramenta impede a renderização da estrutura hierárquica e exibe a mensagem "Corrija o JSON para visualizá-lo em árvore.".
O validador identifica desvios específicos da especificação e aponta a localização exata do problema por meio da indicação "linha {line}, coluna {col}". O usuário pode clicar no botão "Ir para o erro" para navegar diretamente ao ponto problemático. Entre as falhas de sintaxe detectadas e reportadas pelo sistema estão:
- Falta uma vírgula entre os itens
- Vírgula extra antes do fechamento
- As chaves de objeto devem estar entre aspas duplas
- Faltam dois-pontos depois do nome de uma propriedade
- Uma string está sem as aspas de fechamento
- O JSON termina cedo demais — parece truncado
- Caractere inesperado onde deveria haver um valor
- Este JSON tem níveis demais de aninhamento para ser processado
- Chave duplicada
{key}— remova uma antes de formatar (a ferramenta gera um erro em chaves duplicadas em vez de mesclá-las silenciosamente)
Detecção e reparo de formatos não padronizados
Além de apontar erros, a ferramenta analisa o texto para identificar se a entrada corresponde a um formato alternativo ou corrompido, oferecendo correções automáticas por meio do botão "Ver correção". O painel "Prévia da correção" exibe o estado "Original" lado a lado com o resultado "Depois da correção". Se a alteração for muito extensa, o sistema exibe o aviso "Prévia truncada — a correção afeta o documento inteiro.". Caso o reparo não seja possível, surge o aviso "Não foi possível reparar esta entrada automaticamente.".
As estruturas detectadas e suas respectivas ações de correção incluem:
| Padrão Detectado | Mensagem de Detecção | Ação de Correção |
|---|---|---|
| Bloco Markdown | Isto parece JSON dentro de um bloco de código Markdown. | Ao aplicar, apenas o JSON dentro do bloco é mantido. |
| JSON Escapado | Isto parece JSON escapado dentro de uma string. | Ao aplicar, a string é desescapada para JSON puro. |
| Dicionário Python | Isto parece um dicionário no estilo Python, não JSON. | Ao aplicar, as aspas e True/False/None são reescritos como JSON. |
| JSON Lines | Isto parece JSON Lines — um valor por linha. | Ao aplicar, as linhas são agrupadas em um único array JSON. |
| Callback JSONP | Isto parece JSON envolvido em um callback JSONP. | Ao aplicar, o invólucro do callback é removido. |
| Sintaxe JSONC | Isto parece JSONC — comentários ou vírgulas extras no final. Mude a sintaxe para JSONC ou aplique a correção. | Ao aplicar, os comentários e as vírgulas extras são removidos. |
Ao clicar em "Aplicar correção", o editor atualiza o conteúdo e exibe "Correção aplicada. Pressione Ctrl/Cmd+Z para desfazer.".
Formatação, ordenação e minificação
A ferramenta oferece recursos para ajustar a apresentação visual do JSON de acordo com a necessidade de leitura humana ou de transmissão de dados.
Formatação e recuo
O usuário pode definir o nível de "Recuo" desejado para estruturar o documento visualmente. Ao aplicar a formatação, o editor exibe a mensagem "JSON formatado.". O sistema preserva números inteiros grandes sem perda de precisão durante a formatação.
Ordenação de chaves
O botão "Ordenar chaves" executa uma organização estrutural profunda. A ferramenta "Ordena as chaves dos objetos recursivamente por ponto de código. A ordem dos arrays nunca muda.". Após a execução, a interface exibe "Chaves ordenadas — a ordem dos arrays não mudou. Pressione Ctrl/Cmd+Z para desfazer.".
Minificação
Para cenários onde o objetivo é reduzir o consumo de banda ou espaço de armazenamento, a função "Minificar" remove todos os espaços em branco, quebras de linha e caracteres de recuo desnecessários. O resultado é confirmado com a mensagem "JSON minificado.".
Navegação estrutural na visualização em árvore
Para analisar a hierarquia de arquivos complexos, a aba "Visualização" permite alternar entre o modo "Código" e o modo "Árvore". A "Árvore JSON" renderiza os nós de forma interativa.
O usuário pode utilizar o campo "Pesquisar chaves e valores" para localizar termos específicos dentro da estrutura. Os resultados da busca são indicados por contadores como "{current} de {total}" ou "{current} de {total}+" quando o volume de correspondências é limitado pela ferramenta. Se nenhum termo for encontrado, a mensagem "Nenhuma correspondência" é exibida. A navegação entre os resultados é feita pelos botões "Correspondência anterior" e "Próxima correspondência".
Para expandir ou recolher nós específicos, a interface disponibiliza os botões "Expandir {key}" e "Recolher {key}", além dos comandos globais "Expandir tudo" e "Recolher tudo". Ao clicar com o botão direito ou acessar o menu de um nó ("Opções de cópia para {key}"), o usuário pode extrair dados específicos utilizando três formatos:
- Copiar valor: Copia apenas o conteúdo do nó selecionado.
- Copiar JSON Pointer: Copia o caminho do nó baseado na RFC 6901.
- Copiar JSONPath: Copia a expressão de consulta para o nó selecionado.
Limites operacionais e tratamento de arquivos grandes
O processamento de dados no navegador exige limites operacionais para manter a estabilidade da aplicação. A ferramenta adota as seguintes regras para arquivos e entradas de texto:
- Limite de tamanho de entrada: O tamanho máximo de entrada suportado é de 10 MiB. Se o limite for excedido, a ferramenta exibe "A entrada é maior que
{limit}, mais do que esta ferramenta consegue processar.". - Tempo limite de verificação: Se a análise do documento demorar muito, o processo é interrompido com o aviso "A verificação deste JSON demorou demais e foi interrompida. Tente um documento menor.".
- Limite de processamento síncrono: O limite para processamento síncrono imediato é de 250.000 caracteres.
- Restrições da árvore de visualização: Se o JSON for muito grande, a árvore exibirá "Este JSON é grande demais para ser renderizado em árvore." ou "Este JSON tem valores demais para ser renderizado em árvore.". Ao expandir um documento grande, a exibição é limitada com o aviso "Este JSON é grande demais para ser expandido por completo — mostrando as primeiras
{count}linhas.", disponibilizando o botão "Mostrar mais{count}…" para carregar mais nós.
Upload e download de arquivos
O usuário pode carregar arquivos locais arrastando-os para a área "Solte um arquivo.json ou.txt aqui" ou clicando em "Abrir arquivo". O sistema realiza as seguintes validações durante a abertura:
- Tipo de arquivo: Se o arquivo não for
.jsonou.txt, exibe "Tipo de arquivo não suportado — escolha um arquivo.json ou.txt.". - Codificação: O arquivo deve ser codificado em UTF-8. Caso contrário, exibe "Este arquivo não é texto UTF-8, então não pode ser aberto aqui.".
- Tamanho do arquivo: Se o arquivo exceder o limite, exibe "O arquivo é grande demais — o limite é
{limit}.". - Falha de leitura: Se ocorrer um erro de leitura física, exibe "Não foi possível ler este arquivo. Tente escolhê-lo novamente.".
Após o carregamento bem-sucedido, a mensagem "{name} carregado ({size})." é exibida. O usuário pode salvar o resultado processado localmente clicando em "Baixar", o que gera a confirmação "{name} baixado.".
Perguntas Frequentes (FAQ)
Meu JSON é enviado para algum servidor?
Não. O formatador roda inteiramente no seu navegador e não faz upload do seu JSON.
O que faz a função de minificar?
A minificação remove espaços e quebras de linha desnecessários, mantendo exatamente os mesmos dados do JSON.
Como a ferramenta lida com chaves duplicadas em um objeto?
A ferramenta identifica chaves duplicadas como um erro de validação ("Chave duplicada {key} — remova uma antes de formatar") em vez de mesclar ou descartar os valores silenciosamente.
Posso carregar qualquer tipo de arquivo de texto?
Não. A ferramenta suporta apenas arquivos com as extensões .json ou .txt que estejam codificados em UTF-8 e respeitem o limite máximo de tamanho estabelecido.