Avaliar JSONPath RFC 9535

Gramática RFC 9535, caminhos e valores normalizados, filtros, índices negativos, slices e uniões, com uma descida recursiva por expressão.

  • Funciona no navegador
  • Sem upload
  • Confira antes de baixar

Os dados de entrada ficam nesta aba, sem envio nem salvamento automático. As contagens agregadas de uso e os diagnósticos gerais de processamento são opcionais e só são enviados com o seu consentimento, sem conteúdo nem nomes de arquivos. Limpar ou fechar apaga os dados; salve antes os resultados de que precisar.

Formatos e limites

Gramática RFC 9535, caminhos e valores normalizados, filtros, índices negativos, slices e uniões, com uma descida recursiva por expressão. Até 32 segmentos, multiplicador de união de seletores de até 16, AST de até 2.048 nós e até 1.000 resultados. match e search usam I-Regexp em um worker que pode ser encerrado. Não há avaliação de JavaScript nem código de funções próprias.

Somente UTF-8. Entrada de até 1 MiB; XML de até 100.000 unidades UTF-16; profundidade de até 64; JSON de até 20.000 nós. JSONL de até 16 MiB, 100.000 registros e 1 MiB por valor. Saída de até 32 MiB. Consultas: 3 s; outras tarefas: 10 s; o worker pode ser cancelado. A memória nativa do XSD é de até 64 MiB, o que não é toda a memória do worker nem do DOM.

Como usar

  1. Escolher origem e modo

    Cole o JSON e digite um JSONPath que comece com $. Com o exemplo de livros carregado, use $.store.book[?@.price < 10].title; não é preciso nenhuma função de callback em JavaScript.

  2. Configurar parâmetros

    O livro A custa 8.5 e o B custa 12. O filtro retorna o valor A no caminho normalizado $['store']['book'][0]['title']; mudar o limite para 5 resulta em nenhuma correspondência, e não em uma consulta malformada.

  3. Verificar e baixar

    Confira os caminhos junto com os valores e depois salve o resultado em JSON. Um caminho identifica uma posição nesta entrada; valores iguais em caminhos diferentes são correspondências separadas. O JSON original não é alterado.

Formatos e limites

Por que a entrada é rejeitada ou o resultado fica vazio?

Antes de tratar um resultado vazio como falha, confira os nomes das propriedades, que diferenciam maiúsculas de minúsculas, e as posições nos arrays. Expressões de filtro em JavaScript e funções personalizadas não são aceitas. Erros de precisão numérica exigem corrigir a representação da entrada, e não afrouxar a consulta.

Qual perfil de análise e quais limites se aplicam?

O perfil declarado, baseado na RFC 9535, limita as expressões a 32 segmentos e 1000 correspondências, com uma única descida recursiva por expressão. match e search usam um processamento limitado de I-Regexp no worker; isso não é a execução de scripts arbitrários.

As entradas ou os arquivos referenciados são enviados a um servidor?

A análise acontece localmente, em um worker do navegador. URLs presentes na entrada não baixam documentos remotos. Informe as dependências de esquema compatíveis como arquivos locais, guarde a sua fonte à parte e baixe os resultados antes de fechar a página.