Aller au contenu principal

JSONPath Query v.2

Configuration actuelle de la tâche JSONPath Query v.2 dans le Workflow Designer
  • Type de tâche: jsonpath-query_v2

Description

La tâche "JSONPath Query v.2" permet de interroger un dataset JSON et d'extraire plusieurs valeurs simultanément en utilisant la syntaxe JSONPath. Chaque extraction est mappée sur un nom de paramètre personnalisé, rendant les données immédiatement disponibles pour les tâches suivantes dans le workflow.

Configuration Parameters

  • JSON d'origine: le contenu JSON sur lequel effectuer la requête. Généralement, on utilise un paramètre dynamique provenant d'une tâche précédente (par exemple, #>Appel REST.réponse<#).
  • Expressions (Requêtes): dans cette section, il est possible de définir une ou plusieurs requêtes. Pour chaque ligne :
  • Nom de Paramètre: le nom qui sera attribué au paramètre de sortie (par exemple, userId).
  • Expression JSONPath: la syntaxe pour extraire les données (par exemple, $.userId ou $.items[*].id).

Note: Si la requête retourne plusieurs résultats, le paramètre contiendra un tableau de valeurs.

Exemples Pratiques de JSONPath Query

Considérons le suivant Dataset JSON d'origine :

{
"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
}
]
}
]
}

Utilisant le dataset des utilisateurs comme source, voici comment configurer les expressions pour extraire des données spécifiques :

Nom de ParamètreExpression JSONPathRésultat (Sortie)Description
all_names$.users[*].name["Luca", "Giulia", "Marco"]Extrait tous les noms présents dans l'array.
first_name$.users[0].name"Luca"Extrait le nom du premier élément (indice 0).
name_by_id$.users[?(@.id == 2)].name"Giulia"Filtre l'array et retourne le nom de l'utilisateur avec ID égal à 2.

Configuration dans la Tâche

À l'intérieur de l'onglet Configuration, les expressions seront mappées comme suit :

"expressions": {
"all_names": "$.users[*].name",
"first_name": "$.users[0].name",
"name_by_id": "$.users[?(@.id == 2)].name"
}

Output Parameters

La tâche génère dynamiquement les paramètres basés sur les noms définis dans la table "Expressions", ainsi que les paramètres standard de contrôle :

  • [Nom Personnalisé]: retourne la valeur (ou le tableau de valeurs) extraite de la requête JSONPath associée (par exemple, title, userId).
  • result: message informatif sur le résultat de l'extraction (par exemple : Expressions extraites avec succès).
  • exitStatus: code d'état de l'opération (0 indique succès).
  • resultJson: représente le résultat complet de l'exécution de la tâche au format JSON.

Exemple resultJson

{
"run_info": {
"status": "Completed",
"run_result": "Success"
},
"output_parameters": {
"exitStatus": "0"
}
}