Passa al contenuto principale
Versione: 1.2 (storica)

JSONPath Query v.2

  • Task type: jsonpath-query_v2

1. Descrizione​

Il task "JSONPath Query v.2" permette di interrogare un dataset JSON ed estrarre più valori contemporaneamente utilizzando la sintassi JSONPath. Ogni estrazione viene mappata su un nome parametro personalizzato, rendendo i dati immediatamente disponibili per i task successivi nel workflow.

jsonpath-query_v2_config.png

2. Parametri di Configurazione​

  • JSON di origine: il contenuto JSON su cui eseguire la query. Solitamente si utilizza un parametro dinamico proveniente da un task precedente (es. #>Chiamata REST.response<#).
  • Espressioni (Queries): in questa sezione è possibile definire una o più query. Per ogni riga:
  • Nome Parametro: il nome che verrà assegnato al parametro di output (es. userId).
  • JSONPath Expression: la sintassi per estrarre il dato (es. $.userId o $.items[*].id).

Nota: Se la query restituisce più risultati, il parametro conterrà un array di valori.

3. Esempi Pratici di JSONPath Query​

Consideriamo il seguente Dataset JSON di 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
}
]
}
]
}

Utilizzando il dataset degli utenti come sorgente, ecco come configurare le espressioni per estrarre dati specifici:

Nome ParametroJSONPath ExpressionRisultato (Output)Descrizione
all_names$.users[*].name["Luca", "Giulia", "Marco"]Estrae tutti i nomi presenti nell'array.
first_name$.users[0].name"Luca"Estrae il nome del primo elemento (indice 0).
name_by_id$.users[?(@.id == 2)].name"Giulia"Filtra l'array e restituisce il nome dell'utente con ID uguale a 2.

3.1 Configurazione nel Task​

All'interno del tab Configurazione, le espressioni verranno mappate come segue:

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

4. Parametri di Output​

Il task genera dinamicamente i parametri basati sui nomi definiti nella tabella "Espressioni", oltre ai parametri standard di controllo:

  • [Nome Personalizzato]: restituisce il valore (o l'array di valori) estratto dalla query JSONPath associata (es. title, userId).
  • result: messaggio informativo sull'esito dell'estrazione (es: Espressioni estratte con successo).
  • exitStatus: codice di stato dell'operazione (0 indica successo).
  • resultJson: rappresenta il risultato completo dell’esecuzione del task in formato JSON.

4.1 Esempio resultJson​

{
"id": 19099,
"name": "JSONPath Query v.2",
"type": "jsonpath-query_v2",
"config": {
"json": "#>Chiamata REST (2).response<#",
"expressions": {
"title": "$.title",
"userId": "$.userId"
}
},
"run_info": {
"run_id": 1477873,
"status": "Completed",
"run_result": "Success",
"result_text": "Espressioni estratte con successo"
},
"output_parameters": {
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"userId": "1",
"exitStatus": "0"
}
}