O Testador de JSONPath permite avaliar expressões de consulta diretamente em dados no formato JSON. Ao inserir um documento JSON e uma expressão correspondente, a ferramenta apresenta de forma imediata os valores extraídos e os respetivos caminhos de origem dentro da estrutura de dados. Este processo ajuda a compreender com precisão o comportamento de filtros e seletores antes de os aplicar em ambientes de produção ou desenvolvimento.
Funcionamento e Limites de Entrada
A ferramenta opera com dois campos de entrada principais, sujeitos a limites específicos para garantir a estabilidade do processamento no navegador:
- Entrada JSON: O utilizador insere os dados estruturados em formato JSON num campo de texto dedicado. O tamanho máximo permitido para esta entrada é de 500 000 caracteres. Se este limite for ultrapassado, a interface exibe a mensagem: "Este JSON é grande demais para ser testado aqui. Tente um exemplo menor.".
- Expressão JSONPath: O campo de texto destinado à consulta aceita expressões com um comprimento máximo de 4000 caracteres. Caso a expressão exceda este limite, surge o aviso: "Esta expressão JSONPath é longa demais para ser testada aqui.".
O processamento dos dados ocorre localmente. O seu JSON e JSONPath são testados diretamente no seu navegador, pelo que nada é enviado para o BroBroGo.
Sintaxe JSONPath e Seleção de Dados
O JSONPath funciona como uma linguagem de consulta para JSON, de forma análoga ao que o XPath representa para o XML. A ferramenta suporta os padrões mais comuns de consulta para navegar e filtrar propriedades em objetos e matrizes (arrays):
- Navegação Direta: Caminhos explícitos que apontam para chaves específicas, como
$.store.book[*].title. - Descida Recursiva: O operador de pesquisa profunda
$..pricelocaliza a chave especificada em qualquer nível de profundidade da árvore JSON. - Filtros de Expressão: Filtros condicionais baseados em valores, como
[?@.price < 10], que extraem apenas os elementos que cumprem o critério definido. - Fatiamento de Arrays (Slices): Sintaxe de intervalo para selecionar subconjuntos de listas com base nos seus índices.
A validação em tempo real analisa a estrutura do documento e a sintaxe da consulta. Se o documento JSON contiver erros de formatação, a ferramenta indica "Este JSON não é válido.". Se a expressão JSONPath contiver erros de escrita ou operadores inválidos, é exibida a mensagem "Esta expressão JSONPath não é válida.".
Apresentação de Resultados e Restrições
Após a avaliação da expressão, a ferramenta gera uma lista detalhada com os valores correspondentes e a localização exata de cada elemento no JSON original.
- Limite de Resultados: O sistema exibe um máximo de 200 resultados. Se a pesquisa gerar mais correspondências, a contagem é apresentada como "Correspondências: 200+" e a interface exibe a nota "Exibindo as primeiras
{max}correspondências.". - Ausência de Correspondências: Quando a expressão é válida mas não encontra elementos que satisfaçam os critérios, surge a indicação "Nenhuma correspondência encontrada.".
- Erros de Avaliação: Se ocorrer uma falha inesperada durante a execução da consulta, o sistema mostra "Não foi possível avaliar este JSONPath.".
- Limitação de Tempo (Timeout): Consultas excessivamente complexas ou aplicadas a volumes de dados muito grandes podem ser interrompidas para evitar o bloqueio do navegador. Nesses casos, é exibido o aviso: "O processamento deste JSONPath demorou muito. Restrinja a expressão ou use um exemplo menor.".
Aplicação no Desenvolvimento e Teste de APIs
No desenvolvimento de APIs, o JSONPath é frequentemente utilizado para validar respostas de serviços web, extrair variáveis em testes automatizados e filtrar cargas úteis (payloads) de dados. Engenheiros de dados, programadores e técnicos de suporte utilizam estas expressões para isolar pontos de dados específicos em estruturas complexas e aninhadas.
A inclusão do caminho de origem para cada correspondência permite que o utilizador identifique a hierarquia exata de um elemento. Isto facilita a replicação de caminhos de extração em código aplicacional ou em ferramentas de integração de sistemas.
Perguntas Frequentes
Qual sintaxe JSONPath posso utilizar?
Pode usar padrões comuns de JSONPath como $.store.book[*].title, busca recursiva com $..price, filtros como [?@.price < 10] e fatiamento de arrays (slices).
Porque é que cada resultado exibe um caminho?
O caminho mostra a origem exata do valor no JSON de entrada, permitindo que copie um resultado sem perder a referência de onde está localizado.
Porque é que uma consulta pode expirar (timeout)?
Consultas recursivas muito amplas ou ficheiros gigantescos podem demorar muito para processar. O testador interrompe a execução após um curto limite de tempo para que possa refinar a expressão ou usar um exemplo menor.