Executar filtros jq localmente

Gramática jq limitada: caminhos, índices, fatias, iteração e ?; pipes, fluxos separados por vírgula e valor predefinido //; listas e objetos; comparações, and/or e…

  • Funciona no navegador
  • Sem envio
  • Verifique antes de transferir

Os dados de entrada ficam neste separador, sem envio ou gravação automática. As contagens agregadas de utilização e os diagnósticos gerais de processamento são opcionais e enviados apenas com consentimento, sem conteúdo nem nomes de ficheiros. Limpar ou fechar elimina os dados; guarde primeiro os resultados necessários.

Formatos e limites

Gramática jq limitada: caminhos, índices, fatias, iteração e ?; pipes, fluxos separados por vírgula e valor predefinido //; listas e objetos; comparações, and/or e aritmética; e map, select, length, keys, type, tostring, tonumber, has, add, reverse, first, last, sort, sort_by, unique, range, empty e not. Até 100.000 passos, 1.000 valores emitidos e 2.048 nós da árvore sintática. Sem variáveis, definições, módulos nem entrada e saída; não é o jq completo.

Só UTF-8. Entrada até 1 MiB; XML até 100.000 unidades UTF-16; profundidade até 64; JSON até 20.000 nós. JSONL até 16 MiB, 100.000 registos e 1 MiB por valor. Saída até 32 MiB. Consultas: 3 s; outras tarefas: 10 s; processo local cancelável. A memória nativa do XSD fica até 64 MiB; isto não é toda a memória do processo nem do DOM.

Como usar

  1. Escolher origem e modo

    Cole um documento JSON e comece com . para o devolver. Para obter os IDs ativos, use .items[] | select(.active) | .id. Escolha a saída em array JSON ou em JSONL antes de executar o filtro.

  2. Configurar parâmetros

    No exemplo carregado, os IDs 1 e 3 estão ativos e o ID 2 não. O filtro acima devolve [1,3] no modo array, ou 1 e depois 3 em linhas JSONL separadas. Já map(...) gera um único array, pelo que a saída em array o envolve como [[...]].

  3. Verificar e transferir

    Verifique o número de valores gerados e descarregue jq-result.json ou jq-result.jsonl. Não haver correspondências dá um array vazio ou um fluxo vazio válido, o que é diferente de um erro de análise. A entrada é um só documento JSON e não um fluxo JSONL sem delimitação.

Formatos e limites

Porque é que esta entrada é rejeitada ou o resultado fica vazio?

Verifique a sintaxe do filtro, a estrutura da entrada e os diagnósticos numéricos. Se um inteiro perder a precisão segura, escreva-o como string de ID entre aspas; não o arredonde em silêncio. As variáveis, os def personalizados e os módulos importados não são suportados, e não são campos de entrada em falta.

Que perfil de análise e que limites se aplicam?

É um subconjunto limitado do jq, e não a linha de comandos do jq: apenas caminhos, iteração, pipes e as funções listadas. No máximo 1000 valores gerados, 100000 passos e 2048 nós AST; sem sistema de ficheiros, rede, módulos nem código arbitrário.

As entradas ou os ficheiros referenciados são enviados para um servidor?

A análise é feita localmente, num worker do navegador. Os URL presentes na entrada não vão buscar documentos remotos. Forneça explicitamente, como ficheiros locais, as dependências de esquema suportadas; guarde o seu texto de origem em separado e descarregue os resultados antes de fechar a página.