Ejecutar filtros jq localmente
Gramática de filtros jq con límites: rutas, índices, rangos, iteración y ?; tuberías, flujos con coma y valor por defecto //; listas y objetos; comparaciones, and, or y…
- Funciona en tu navegador
- Sin subir archivos
- Revisa antes de descargar
Las entradas permanecen en esta pestaña; no se suben ni se guardan automáticamente. Los recuentos agregados de uso y los diagnósticos generales de procesamiento son opcionales y solo se envían con consentimiento, sin contenido ni nombres de archivo. Al borrar o cerrar se pierden las entradas; guarda antes los resultados necesarios.
Formatos y límites
Gramática de filtros jq con límites: rutas, índices, rangos, iteración y ?; tuberías, flujos con coma y valor por defecto //; listas y objetos; comparaciones, and, or y aritmética; y las funciones map, select, length, keys, type, tostring, tonumber, has, add, reverse, first, last, sort, sort_by, unique, range, empty y not. Hasta 100.000 pasos, 1.000 valores de salida y 2.048 nodos del árbol. Sin variables, definiciones, módulos ni entrada y salida; no es un jq completo.
Solo UTF-8. Entrada ≤ 1 MiB; XML ≤ 100.000 unidades UTF-16; profundidad ≤ 64; JSON ≤ 20.000 nodos. JSONL ≤ 16 MiB, 100.000 registros y 1 MiB por valor. Salida ≤ 32 MiB. Consultas: 3 s; el resto de tareas: 10 s; se pueden cancelar. Memoria nativa de XSD ≤ 64 MiB; no incluye toda la memoria del proceso ni del DOM.
Cómo usarlo
- Elegir origen y modo
Pega un documento JSON y empieza por . para devolverlo tal cual. Para obtener los ID activos, usa .items[] | select(.active) | .id. Elige la salida como array JSON o como JSONL antes de ejecutar el filtro.
- Configurar parámetros
En el ejemplo cargado, los ID 1 y 3 están activos y el 2 no. El filtro anterior devuelve [1,3] en modo array, o 1 y 3 en líneas JSONL separadas. En cambio, map(...) emite un solo array, así que la salida en modo array lo envuelve como [[...]].
- Revisar y descargar
Comprueba cuántos valores se han emitido y descarga jq-result.json o jq-result.jsonl. Que no haya coincidencias es un resultado válido (un array vacío o un flujo vacío) y no es lo mismo que un error del analizador. La entrada es un único documento JSON, no un flujo JSONL sin delimitar.
Formatos y límites
¿Por qué se rechaza la entrada o el resultado sale vacío?
Revisa la sintaxis del filtro, la forma de la entrada y los avisos numéricos. Si un entero pierde la precisión segura, pásalo como cadena de ID entre comillas; no lo redondees sin avisar. Las variables, los def propios y los módulos importados no son compatibles; no es que falten campos en la entrada.
¿Qué perfil de analizador y qué límites se aplican?
Es un subconjunto acotado de jq, no la línea de comandos de jq: solo rutas, iteración, pipes y las funciones indicadas. Como máximo 1000 valores emitidos, 100000 pasos y 2048 nodos AST; sin sistema de archivos, red, módulos ni código arbitrario.
¿Se envían a un servidor la entrada o los archivos a los que hace referencia?
El análisis se ejecuta en local, en un worker del navegador. Las URL que aparezcan en la entrada no descargan documentos remotos. Aporta como archivos locales las dependencias de esquema que sean compatibles, conserva aparte tu fuente y descarga los resultados antes de cerrar la página.