Logic Apps:如何从Http API cal获取display_value响应

时间:2019-04-30 18:56:06

标签: json azure azure-logic-apps

在Azure Logic应用中,下面是我在进行Http响应调用时得到的响应。

{
 "import_set": "",
 "staging_table": "",
 "result": [
   {
    "transform_map": "",
    "table": "incident",
    "display_name": "",
    "display_value": "INC5164816461631654",
    "record_link": "",
    "status": "",
    "sys_id": ""
   }
 ]

}

如何获取“ display_name”属性。我尝试了

@triggers().outputs.body.result.display_name

@{body('HTTP')['result'][display_name]}

但是它不起作用。

结果:INC5164816461631654

2 个答案:

答案 0 :(得分:0)

如果您的输出为json格式,则可以使用以下表达式来获取它:@body('HTTP')['result'][0]['display_name']。因为标签result下是数组,所以如果您不指向索引,它将无法找到该属性。

如果您的输出不是json格式,它将是一个字符串。您需要将其解析为json。 然后,您将可以使用相同的表达式(@body('Parse_JSON')['result'][0]['display_name'])来获取值。

enter image description here

enter image description here

答案 1 :(得分:0)

两种方法:

  1. 如果您直接从响应中使用,请尝试以下表达式: 直接在表达式上: triggerBody()?['result'] [0]?['display_name'] 或在“代码”视图中 像这样的 @triggerBody()?['result'] [0]?['display_name'] ,响应应该是 正确的JSON。
  2. 如果不是正确的json,请使用有效负载模式解析json,然后使用以下内容 表达式: body('Parse_JSON')?['result'] [0]?['display_name'] 或在代码视图中显示为 @body('Parse_JSON')?['result'] [0]?['display_name'] 。注意替换parse_json 以及您相应的形状名称。
  3. 通过声明乔治所提到的变量,但这将增加流程, 相反,您可以直接使用表达式来提取值。

让我知道这是否有帮助!干杯