【问题标题】:Logic App dynamic content give null or ""逻辑应用动态内容给出 null 或“”
【发布时间】:2019-08-14 07:42:00
【问题描述】:

我想在 Jira 和 Azure 之间创建小型自动化。为此,我从 Jira 执行 HTTP 触发器,它将所有请求属性发送到 Azure Logic App。在逻辑应用程序的“收到 HTTP 请求时”步骤中,我可以正确地看到 JSON 模式以及我需要的所有数据。例如,在接下来的步骤中,我想将用户添加到 Azure AD 组。问题从这里开始。

例如,我想初始化变量并使用 JSON 中的值设置它。我从动态菜单中选择属性,但在脚本执行后它始终为空值(但在“原始输出”的第一步中,我看到了带有数据的整个模式)。我尝试了很多东西 - 解析、组合、许多不同的转换 - 总是没有任何运气 - 空值或“”。

预期值 - 当我想使用动态内容中的属性初始化变量时,我想从输入 json 中获取值。

Output from Jira

Output with the same JSON send from Postman

感谢您的帮助!

-- Flow example

Flow result

【问题讨论】:

  • 你能发布一些你所做的代码吗?
  • 我添加了截图,请看一下

标签: json azure jira azure-logic-apps


【解决方案1】:

如果您发送带有 application/json 内容类型的 json,您可以只选择带有动态内容的属性,但如果不是,您必须使用 Parse Json 操作将其解析为 json 格式。

对于架构,您需要使用您的 json 数据通过Use sample payload to generate schema 生成它。粘贴示例 json 有效负载。

然后您将能够选择属性。但是您无法实现它的动态内容,您必须编写表达式。格式会像这样body('Parse_JSON')['test1'],如果你的json有数组数据,你需要指向索引它会像这样body('Parse_JSON')['test2'][0]['test3']

下面是我的测试,你可以试试。

【讨论】:

  • 是的,我想使用此上下文菜单执行此操作。 Jira 将发送 JSON 文件,所以我不应该再次将其解析为 JSON。请看我添加的截图
  • @Kivas,我测试,这不是 json 文件问题,而是 Content-Type 问题,如果您使用 text/plain 发送 json,即使您设置了架构,您仍然需要使用 Parse JSON 操作解析它如果您使用application/json 发送,它将显示为您的邮递员结果。您可以使用text/plain 与邮递员进行测试,您将得到第一个结果。
  • 请查看标题 - 它以 application/json 格式发送 { "headers": { "Connection": "Keep-Alive", "Accept": "/ i>”、“主机”:“prod-999.westeurope.logic.azure.com”、“用户代理”:“Atlassian HttpClient 未知/JIRA-1001.0.0-SNAPSHOT (100107)/JIRA-Service-Desk- 3.3.0-OD / 默认", "Content-Length": "23609", "Content-Type": "application/json; charset=UTF-8" },
  • @Kivas,如果已经是 application/json 格式,能否使用 Expression 获取 triggerBody()['test1'] 之类的值。
  • @George_Chen 是的,但是在表达式中我可以输入可以在动态菜单上单击的相同公式,所以这不是问题(我认为是这样)。我将输出从 Jira 切换为纯文本/文本,以便稍后在 Azure 端解析它。效果是一样的——我可以看到输入数据,我可以看到解析后的数据——属性和所有值,但是用JSON中的值替换App Logic中的变量不起作用。请查看新的屏幕截图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 2018-11-08
相关资源
最近更新 更多