Pular para o conteúdo principal

Consulta JSONPath v.2

Configuração atual da tarefa JSONPath Query v.2 no Workflow Designer
  • Tipo de Tarefa: jsonpath-query_v2

Descrição

A tarefa "Consulta JSONPath v.2" permite consultar um conjunto de dados JSON e extrair vários valores simultaneamente usando a sintaxe JSONPath. Cada extração é mapeada para um nome de parâmetro personalizado, tornando os dados imediatamente disponíveis para as tarefas subsequentes no fluxo de trabalho.

Parâmetros de Configuração

  • JSON de Origem: o conteúdo JSON sobre o qual a consulta será executada. Geralmente, utiliza-se um parâmetro dinâmico proveniente de uma tarefa anterior (ex: #>Chiamata REST.response<#).
  • Expressões (Queries): Nesta secção, é possível definir uma ou mais consultas. Para cada linha:
  • Nome do Parâmetro: o nome que será atribuído ao parâmetro de saída (ex: userId).
  • Expressão JSONPath: a sintaxe para extrair o dado (ex: $.userId ou $.items[*].id).

Nota: Se a consulta retornar múltiplos resultados, o parâmetro conterá um array de valores.

Exemplos Práticos de Consulta JSONPath

Consideremos o seguinte Conjunto de Dados JSON de origem:

{
"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 o conjunto de dados de utilizadores como fonte, veja como configurar as expressões para extrair dados específicos:

Nome do ParâmetroExpressão JSONPathResultado (Output)Descrição
all_names$.users[*].name["Luca", "Giulia", "Marco"]Extrai todos os nomes presentes no array.
first_name$.users[0].name"Luca"Extrai o nome do primeiro elemento (índice 0).
name_by_id$.users[?(@.id == 2)].name"Giulia"Filtra o array e retorna o nome do utilizador com ID igual a 2.

Configuração na Tarefa

Dentro da aba Configuração, as expressões serão mapeadas da seguinte forma:

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

Parâmetros de Saída

A tarefa gera dinamicamente os parâmetros com base nos nomes definidos na tabela "Expressões", além dos parâmetros de controlo padrão:

  • [Nome Personalizado]: retorna o valor (ou o array de valores) extraído da consulta JSONPath associada (ex: title, userId).
  • result: mensagem informativa sobre o resultado da extração (ex: Expressões extraídas com sucesso).
  • exitStatus: código de estado da operação (0 indica sucesso).
  • resultJson: representa o resultado completo da execução da tarefa em formato JSON.

Exemplo resultJson

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