JSONPath Query v.2
JSONPath Query v.2 | Sybot Documentation
JSONPath Query v.2
- Task type: jsonpath-query_v2
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.
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.
$.userIdo$.items[*].id).
Nota: Se la query restituisce più risultati, il parametro conterrà un array di valori.
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 Parametro | JSONPath Expression | Risultato (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. |
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"
}
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.
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"
}
}