Skip to main content

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.

jsonpath-query_v2_config.png

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.

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.

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