Formatador JSON

Formate, valide e minifique ficheiros JSON instantaneamente.

Cole o seu JSON

data.json
Pronto. Cole o JSON e escolha uma ação.

O seu JSON é processado diretamente no seu navegador. Nada é enviado para o BroBroGo.

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.

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:

  1. "Copiar valor": Copia o valor bruto do nó selecionado [INTERFACE].
  2. "Copiar JSON Pointer": Copia a referência estrutural do nó de acordo com a especificação RFC 6901 (por exemplo, /utilizador/perfil/nome).
  3. "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].