Saltar al contenido

constructor de filtros jq

Convierte un documento JSON en un filtro jq funcional, con vista previa sobre tus datos.

Entrada
Salida

constructor de filtros jq

Pega un documento JSON y esta herramienta lista cada ruta de campo que contiene, en la propia sintaxis de punto y corchetes de jq — .users[].email, .items[0].price, y así sucesivamente — así no tienes que adivinar la estructura de datos que no escribiste tú mismo. Elige una de esas rutas, o escribe la tuya propia, y la herramienta construye un filtro jq funcional a su alrededor.

La opción de operación controla qué tipo de filtro se construye. Seleccionar devuelve el valor o valores de la ruta, uno por línea, exactamente como imprime jq simple un flujo. Mapear envuelve los mismos valores en un único array JSON con corchetes cuadrados. Filtrar necesita una ruta que termine en [] y una condición como age > 18 o status == "active" — mantiene solo los elementos que coinciden, usando select() bajo el capó. Agregar apunta a un array completo (sin [] al final) e informa su cantidad, y — cuando cada elemento es un número — la suma, mínimo y máximo también; añade una condición para agregar solo los elementos que pasen primero.

La salida de texto sin formato elimina las comillas de los resultados de cadena, coincidiendo con el flag -r de jq; la salida compacta colapsa el JSON a una línea en lugar de indentación de dos espacios. La opción de versión de sintaxis jq etiqueta el filtro generado con un comentario para jq 1.5, 1.6 o 1.7 — útil cuando fijas un pipeline a una versión específica — sin cambiar lo que calcula la vista previa, ya que el subconjunto de jq que implementa esta herramienta se comporta igual en las tres. Las condiciones soportan ==, !=, >, >=, <, <= y contains, y comparan contra números, cadenas, booleanos, null o texto entre comillas.

Todo funciona localmente en tu navegador: el JSON que pegas, el filtro que construyes y el resultado que produce nunca abandonan tu dispositivo. Cuando estés contento con el filtro, copia el resultado, descárgalo como archivo .txt, o envía la salida de vuelta a la entrada para seguir refinándola.

Preguntas frecuentes

¿Esto ejecuta un binario jq real?
No. Implementa un subconjunto práctico de sintaxis de rutas jq y operaciones en JavaScript, por lo que el mismo filtro que ves aquí puede necesitar ajustes para casos límite que una instalación jq completa manejaría.
¿Por qué el filtro necesita una ruta terminada en []?
Filtrar mantiene o descarta elementos individuales de un array, por lo que la ruta debe nombrar una colección iterada — .users[] en lugar de .users. La herramienta te lo dirá si no es así.
¿Qué acepta el campo de condición?
Un nombre de campo más un operador y un valor, como age > 18 o status == "active", u solo un operador y valor (> 10) para comparar directamente los elementos de un array. Los operadores soportados son ==, !=, >, >=, <, <= y contains.
¿Por qué Agregar solo muestra un número para algunas rutas?
Suma, mínimo y máximo solo tienen sentido para un array de números. Cuando el array contiene objetos — una lista de usuarios, por ejemplo — aún obtienes un número, opcionalmente reducido por una condición primero.
¿Se carga mi JSON a algún lugar?
No. El análisis, descubrimiento de rutas y filtrado ocurren en tu navegador — tu documento nunca se envía a un servidor.