Consulta JSON v.2
- Tipo de tarea: jsonpath-query_v2
Descripción
La tarea "Consulta JSON v.2" permite consultar un conjunto de datos JSON y extraer múltiples valores simultáneamente utilizando la sintaxis JSONPath. Cada extracción se mapea a un nombre de parámetro personalizado, haciendo que los datos estén disponibles inmediatamente para las tareas posteriores en el flujo de trabajo.
Parámetros de Configuración
- JSON de origen: El contenido JSON en el que se ejecutará la consulta. Normalmente se utiliza un parámetro dinámico proveniente de una tarea anterior (ej.
#>Chiamata REST.response<#). - Expresiones (Consultas): En esta sección se puede definir una o más consultas. Para cada fila:
- Nombre de Parámetro: El nombre que se asignará al parámetro de salida (ej.
userId). - Expresión JSONPath: La sintaxis para extraer el dato (ej.
$.userIdo$.items[*].id).
Nota: Si la consulta devuelve múltiples resultados, el parámetro contendrá un array de valores.
Ejemplos Prácticos de Consulta JSONPath
Consideremos el siguiente Conjunto de Datos JSON de origen:
{
"users": [
{
"id": 1,
"name": "Luca",
"age": 25,
"city": "Roma",
"orders": [
{
"id": 101,
"total": 50
},
{
"id": 102,
"total": 120
}
]
},
{
"id": 2,
"name": "Giulia",
"age": 30,
"city": "Milano",
"orders": [
{
"id": 103,
"total": 200
}
]
},
{
"id": 3,
"name": "Marco",
"age": 22,
"city": "Roma",
"orders": [
{
"id": 104,
"total": 80
},
{
"id": 105,
"total": 40
}
]
}
]
}
Utilizando el conjunto de datos de usuarios como fuente, aquí hay cómo configurar las expresiones para extraer datos específicos:
| Nombre de Parámetro | Expresión JSONPath | Resultado (Salida) | Descripción |
|---|---|---|---|
| all_names | $.users[*].name | ["Luca", "Giulia", "Marco"] | Extrae todos los nombres presentes en el array. |
| first_name | $.users[0].name | "Luca" | Extrae el nombre del primer elemento (índice 0). |
| name_by_id | $.users[?(@.id == 2)].name | "Giulia" | Filtra el array y devuelve el nombre del usuario con ID igual a 2. |
Configuración en la Tarea
Dentro de la pestaña Configuración, las expresiones se mapearán de la siguiente manera:
"expressions": {
"all_names": "$.users[*].name",
"first_name": "$.users[0].name",
"name_by_id": "$.users[?(@.id == 2)].name"
}
Parámetros de Salida
La tarea genera dinámicamente los parámetros basados en los nombres definidos en la tabla "Expresiones", además de los parámetros estándar de control:
- [Nombre Personalizado]: Devuelve el valor (o el array de valores) extraído de la consulta JSONPath asociada (ej.
title,userId). - result: Mensaje informativo sobre el resultado de la extracción (ej: Expresiones extraídas con éxito).
- exitStatus: Código de estado de la operación (0 indica éxito).
- resultJson: Representa el resultado completo de la ejecución de la tarea en formato JSON.
Ejemplo resultJson
{
"run_info": {
"status": "Completed",
"run_result": "Success"
},
"output_parameters": {
"exitStatus": "0"
}
}