JQ Query (Parse JSON)
JQ Query (Parse JSON) selecciona y reorganiza la información de los datos que recibe. Escribes una consulta corta que indica qué campos quieres y cómo deben quedar, y el componente devuelve solo eso.
Es útil cuando un servicio devuelve respuestas muy grandes y solo te interesan unos pocos campos, o cuando necesitas filtrar elementos que cumplan una condición.
Cuándo usarlo
- Quedarte con el nombre y el correo de cada contacto de una respuesta con decenas de campos.
- Filtrar los pedidos que están en estado “pendiente”.
- Cambiar el nombre de los campos para que encajen con lo que espera el siguiente componente.
- Sacar una lista que viene dentro de otra respuesta para recorrerla después.
Configuración
| Campo | Qué hace |
|---|---|
| Input (obligatorio) | Los datos o el mensaje que quieres filtrar. Si es un mensaje, su texto debe tener formato de datos estructurados. |
| JQ Query (obligatorio) | La consulta. Lo que recibe el componente es siempre una lista, así que las consultas suelen empezar por .[], que significa “cada elemento”. |
| Flatten Data records | Desactivado por defecto. Si lo activas y la entrada es una lista de registros, la consulta se aplica a cada registro por separado y los campos que devuelve se añaden al propio registro, que conserva los que ya tenía. |
| Remove Empty Keys | Desactivado por defecto. Quita del resultado los campos vacíos y las listas sin elementos. Úsalo junto con Flatten Data records. |
Algunos ejemplos de consultas que puedes escribir en JQ Query:
| Quieres… | Consulta |
|---|---|
| Solo el nombre y el correo de cada contacto | .[] | {nombre: .name, correo: .email} |
| Solo los pedidos pendientes | .[] | select(.estado == "pendiente") |
| Los elementos de una lista que viene dentro de la respuesta | .[] | .items[] |
Resultado
La salida Filtered Data devuelve un registro por cada resultado de la consulta. Si un resultado es un valor simple (un texto o un número), lo recibes en el campo text. Puedes conectarla a un Loop, a Parse Data o a cualquier componente que reciba registros.
Ejemplo
Un flujo consulta el catálogo de una tienda y recibe cada producto con más de 40 campos. Para enviar a un agente solo lo relevante, JQ Query (Parse JSON) usa la consulta .[] | {producto: .title, precio: .price, stock: .inventory}. El agente recibe registros con tres campos y responde más rápido.