O que esta ferramenta faz
Um formatador JSON que faz pretty-print, minifica, valida, repara e consulta JSON no teu navegador. Aponta para a linha e coluna exatas de qualquer erro de sintaxe, suporta drag-and-drop de ficheiros, lembra-se da tua última entrada entre recargas e renderiza documentos de vários megabytes sem bloquear o separador. Tudo corre localmente — sem ida ao servidor, sem upload.
Para além de formatar, a ferramenta oferece consultas JSONPath para extrair valores de um documento, uma vista em árvore interativa com edição in-line, ordenação de chaves para diffs estáveis, uma passagem de "Reparar" para o JSON-com-vírgulas-finais-e-comentários que o teu ficheiro de configuração realmente contém, exportação CSV para arrays de objetos e um permalink que codifica a tua entrada na URL para partilhares uma vista exata com um colega.
Quando usar
- Ler o corpo de uma resposta de API que veio numa única linha minificada.
- Limpar um ficheiro de configuração antes de o submeter a um repositório.
- Confirmar que um payload que vais POST é JSON válido.
- Extrair um único valor de um documento profundamente aninhado com uma expressão JSONPath como
$.users[?(@.role=='admin')].email. - Exportar um array de registos como CSV para uma folha de cálculo.
- Partilhar um payload problemático com um colega através de um permalink, sem colar o JSON no Slack.
- Comparar dois documentos JSON (ordena as chaves dos dois e depois corre o Comparador sobre o resultado formatado).
Como funciona
O parser estrito é o JSON.parse integrado do navegador, o que significa conformidade com o RFC 8259: sem vírgulas finais, sem comentários, sem chaves sem aspas, sem strings entre plicas. Quando o parse falha, mapeamos a posição da mensagem de erro nativa para uma linha e coluna para não teres de contar chavetas à mão. O pretty-print usa JSON.stringify(value, null, 2) e a minificação usa JSON.stringify(value) — as mesmas primitivas que o teu runtime usa.
A passagem de Reparar é intencionalmente separada: remove comentários de linha e de bloco, remove vírgulas finais e normaliza aspas curvas em aspas direitas, depois corre o parser estrito sobre o resultado. Não tenta adivinhar chaves sem aspas nem inventar parêntesis em falta — se um documento estiver estruturalmente partido, deves saber.
A ordenação de chaves percorre a árvore recursivamente e re-emite cada objeto com as chaves por ordem lexicográfica. Os arrays mantêm a ordem que tinham. É o truque para obter um diff estável entre duas respostas de API que diferem apenas na ordem das chaves.
As consultas JSONPath são avaliadas contra o documento parseado. Os valores correspondentes são realçados na vista em árvore e listados no painel de resultados. Expressões de filtro (?()), wildcards (*), descida recursiva (..) e fatias de array ([start:end]) são todas suportadas.
A edição em árvore permite-te clicar num valor para o alterar no sítio. As edições são aplicadas à estrutura parseada e re-serializadas para o textarea, para que a saída formatada e a árvore nunca discordem. O estado expandido/recolhido é preservado entre re-renderizações para não perderes o teu lugar quando guardas uma edição.
A exportação CSV achata um array de objetos numa linha de cabeçalhos mais linhas de valores. Os campos aninhados são acessíveis via dot-paths. Strings que contêm vírgulas, aspas ou newlines são escapadas conforme o RFC 4180.
Os permalinks codificam a entrada no fragmento da URL com Base64 + compressão estilo LZ, para que o próprio JSON nunca toque num servidor. O fragmento cabe confortavelmente na barra de endereço para payloads típicos (alguns KB); documentos enormes ficam locais e a opção de permalink atenua-se.
Notas
Porque é que uma cópia de uma resposta de API falha o parse? Os navegadores e os terminais às vezes colam aspas curvas (" e ") em vez de aspas direitas ("). O JSON requer aspas direitas. O parser estrito coloca o indicador de erro na primeira aspa curva, ou a passagem Reparar normaliza-as.
Suporta ficheiros grandes? Sim. O parser lida com documentos de vários megabytes e a vista em árvore virtualiza a renderização, pelo que mesmo um array de 50 MB se mantém scrollável. Acima disso, a thread principal do navegador pode bloquear brevemente no próprio passo de parse; nessa escala, prefere um parser de stream como stream-json em Node.
Porque é que o resultado JSONPath está vazio? As expressões JSONPath são sensíveis a maiúsculas/minúsculas e devem começar por $ para a raiz. As expressões de filtro precisam de um @ à frente para o nó atual — $.users[?(@.role=='admin')], não $.users[?(role=='admin')].
O permalink expõe os meus dados? Não. O payload codificado fica no fragmento da URL (a parte depois de #), que os navegadores não enviam para servidores. Se partilhares o permalink, o navegador do destinatário descodifica-o localmente; o TaskKit nunca o vê.
Esta ferramenta vê os meus dados? Não. Parsing, formatação, avaliação JSONPath, reparação e exportação CSV acontecem todos no teu separador. Não há etapa de upload, não há analítica sobre os conteúdos e não há pré-visualização que envie texto para um servidor.
Ferramentas relacionadas
- JSON ↔ YAML — converte entre formatos
- Validador JSON Schema — valida a estrutura contra um schema
- Comparador — compara dois documentos JSON
- Como o TaskKit se compara ao jsonformatter.org — matriz de funcionalidades, chamadas de rede medidas, o que cada ferramenta envia