Processamento local e privacidade de dados
O processamento dos seus dados ocorre inteiramente no lado do cliente. O seu JSON é processado diretamente no seu navegador. Nada é enviado para o BroBroGo [privacy]. Isto significa que a validação, a formatação e a minificação de ficheiros ocorrem localmente no seu computador, sem que os dados saiam do seu sistema [privacy].
A ferramenta suporta a introdução direta de texto ou o carregamento de ficheiros com a extensão .json ou .txt. Para abrir um ficheiro, pode clicar em "Abrir ficheiro" ou arrastar e largar o documento na área indicada, que exibe a mensagem "Largue aqui um ficheiro.json ou.txt" [INTERFACE].
Existem limites operacionais definidos para garantir a estabilidade do navegador:
- O tamanho máximo de ficheiro suportado é de 10 MiB [rules]. Se tentar carregar um ficheiro que exceda este limite, a ferramenta exibe a mensagem "O ficheiro é grande demais — o limite é
{limit}." [INTERFACE]. - Se a entrada de texto colada exceder o limite de processamento, surge o aviso "A entrada é maior do que
{limit}, mais do que esta ferramenta consegue processar." [INTERFACE]. - O limite para o processamento síncrono imediato é de 250 000 carateres [rules]. Se a verificação de integridade do JSON demorar demasiado tempo, o processo é interrompido com o alerta "A verificação deste JSON demorou demasiado e foi interrompida. Tente um documento mais pequeno." [INTERFACE].
- Os ficheiros carregados devem utilizar obrigatoriamente a codificação UTF-8. Caso contrário, a ferramenta apresenta o erro "Este ficheiro não é texto UTF-8, pelo que não pode ser aberto aqui." [INTERFACE].
- Se ocorrer uma falha genérica de leitura, será exibida a mensagem "Não foi possível ler este ficheiro. Tente escolhê-lo novamente." [INTERFACE].
- Se o formato do ficheiro não for compatível, surge o aviso "Tipo de ficheiro não suportado — escolha um ficheiro.json ou.txt." [INTERFACE].
Validação de sintaxe e correção de erros
A validação de dados JSON exige uma conformidade estrita com a especificação do formato. Quando o documento inserido possui falhas estruturais, a ferramenta impede a visualização hierárquica e apresenta a mensagem "Corrija o JSON para o visualizar em árvore." [INTERFACE]. O utilizador pode clicar no botão "Ir para o erro" para localizar a falha, que é descrita com a indicação exata de "linha {line}, coluna {col}" [INTERFACE].
A ferramenta identifica e aponta erros específicos de sintaxe, tais como:
- "Falta uma vírgula entre os itens" [INTERFACE]
- "Vírgula a mais antes do fecho" [INTERFACE]
- "As chaves de objeto têm de estar entre aspas duplas" [INTERFACE]
- "Faltam dois pontos depois do nome de uma propriedade" [INTERFACE]
- "Uma string está sem as aspas de fecho" [INTERFACE]
- "O JSON termina cedo demais — parece truncado" [INTERFACE]
- "Caráter inesperado onde devia estar um valor" [INTERFACE]
- "Este JSON tem demasiados níveis de aninhamento para ser processado" [INTERFACE]
- "Chave duplicada
{key}— remova uma antes de formatar" (a ferramenta gera um erro em chaves duplicadas em vez de as fundir silenciosamente) [rules, INTERFACE].
Deteção e reparação de formatos não-standard
A ferramenta consegue detetar se o conteúdo colado corresponde a estruturas semelhantes a JSON e sugere correções automáticas através do botão "Pré-visualizar correção" [INTERFACE]. O painel de "Pré-visualização da correção" mostra o estado "Original" e o resultado "Depois da correção" [INTERFACE]. Se a alteração afetar todo o documento, surge o aviso "Pré-visualização truncada — a correção afeta o documento inteiro." [INTERFACE]. Se a reparação não for possível, exibe-se "Não foi possível reparar esta entrada automaticamente." [INTERFACE].
As estruturas detetadas e as respetivas ações de reparação incluem:
- Markdown: Deteta "Isto parece JSON dentro de um bloco de código Markdown." [INTERFACE]. Ação: "Ao aplicar, mantém-se apenas o JSON dentro do bloco." [INTERFACE].
- Strings com escape: Deteta "Isto parece JSON com carateres de escape dentro de uma string." [INTERFACE]. Ação: "Ao aplicar, a string é convertida de novo em JSON simples." [INTERFACE].
- Dicionários Python: Deteta "Isto parece um dicionário ao estilo do Python, e não JSON." [INTERFACE]. Ação: "Ao aplicar, as aspas e True/False/None são reescritos como JSON." [INTERFACE].
- JSON Lines: Deteta "Isto parece JSON Lines — um valor por linha." [INTERFACE]. Ação: "Ao aplicar, as linhas são agrupadas num único array JSON." [INTERFACE].
- JSONP: Deteta "Isto parece JSON envolvido numa callback JSONP." [INTERFACE]. Ação: "Ao aplicar, o invólucro da callback é removido." [INTERFACE].
- JSONC: Deteta "Isto parece JSONC — comentários ou vírgulas a mais no final. Mude a sintaxe para JSONC ou aplique a correção." [INTERFACE]. Ação: "Ao aplicar, os comentários e as vírgulas a mais são removidos." [INTERFACE].
Ao clicar em "Aplicar correção", a alteração é efetuada e surge a mensagem "Correção aplicada. Prima Ctrl/Cmd+Z para desfazer." [INTERFACE].
Formatação, ordenação e minificação
A ferramenta disponibiliza operações distintas para manipular a apresentação do JSON através dos botões "Formatar" e "Minificar" [INTERFACE].
Formatação e ordenação de chaves
A formatação organiza o JSON aplicando quebras de linha e o nível de recuo selecionado no campo "Recuo". Durante este processo, os números inteiros de grande dimensão são preservados sem qualquer perda de precisão [rules].
O utilizador pode também ordenar as propriedades dos objetos através do botão "Ordenar chaves" [INTERFACE]. Esta operação "Ordena as chaves dos objetos recursivamente por ponto de código. A ordem dos arrays nunca muda." [INTERFACE]. Após a execução, a ferramenta exibe a mensagem "Chaves ordenadas — a ordem dos arrays não mudou. Prima Ctrl/Cmd+Z para desfazer." [INTERFACE].
Minificação
A operação "Minificar" remove todos os espaços em branco, quebras de linha e carateres de preenchimento desnecessários fora das strings. O resultado é um bloco de texto contínuo otimizado para transmissão de dados ou armazenamento.
Navegação estrutural na vista de árvore
Para além da vista de "Código", a ferramenta disponibiliza a vista de "Árvore" para explorar visualmente a hierarquia do JSON. Esta vista interativa exibe o nó "raiz" e permite expandir ou recolher elementos através dos botões "Expandir {key}" e "Recolher {key}" [INTERFACE].
Existem limites de renderização para documentos complexos na vista de árvore:
- Se o JSON for excessivamente pesado, surge a mensagem "Este JSON é grande demais para ser renderizado em árvore." [INTERFACE] ou "Este JSON tem valores a mais para ser renderizado em árvore." [INTERFACE].
- Ao usar "Expandir tudo", se o limite de linhas for atingido, a ferramenta exibe "Este JSON é grande demais para ser totalmente expandido — mostram-se as primeiras
{count}linhas." [INTERFACE], disponibilizando o botão "Mostrar mais{count}…" [INTERFACE].
A pesquisa na árvore é feita através do campo "Pesquisar chaves e valores" [INTERFACE]. Os resultados são navegados com os botões "Correspondência anterior" e "Correspondência seguinte" [INTERFACE], exibindo indicadores como "{current} de {total}", "{current} de {total}+" ou "Sem correspondências" [INTERFACE].
Extração de dados com JSON Pointer e JSONPath
Ao navegar na estrutura da árvore, o utilizador pode aceder ao menu "Opções de cópia para {key}" em qualquer nó para extrair caminhos de dados específicos [INTERFACE]. Estão disponíveis três opções de cópia:
- "Copiar valor": Copia o valor bruto do nó selecionado [INTERFACE].
- "Copiar JSON Pointer": Copia a referência estrutural do nó de acordo com a especificação RFC 6901 (por exemplo,
/utilizador/perfil/nome). - "Copiar JSONPath": Copia a expressão de consulta JSONPath para localização do nó em processamento de dados (por exemplo,
$.utilizador.perfil.nome).
Perguntas Frequentes
O meu JSON é enviado para algum servidor?
Não. O formatador é executado 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 posso extrair o caminho de uma chave específica no meu JSON?
Pode mudar para a visualização de "Árvore", localizar o elemento pretendido, abrir o menu "Opções de cópia para {key}" e selecionar "Copiar JSON Pointer" ou "Copiar JSONPath" [INTERFACE].
O que acontece se o meu JSON tiver chaves duplicadas no mesmo objeto?
A ferramenta não funde nem descarta os valores silenciosamente [rules]. Em vez disso, valida a estrutura e exibe um erro de "Chave duplicada {key} — remova uma antes de formatar" [INTERFACE].