【问题标题】:Get value from json in LogicApp从 LogicApp 中的 json 获取值
【发布时间】:2020-05-31 11:49:14
【问题描述】:

完全改写问题,因为第一次尝试不清楚。

在我的逻辑应用程序中,我正在从 blob 中读取 .json,其中包含:

{
    "alpha": {
        "url": "https://linktoalpha.com",
        "meta": "This logic app does job aaaa"
    },
    "beta": {
        "url": "https://linktobeta.com",
        "meta": "This logic app does job beta"
    },
    "theta": {
        "url": "https://linktotheta.com",
        "meta": "This logic app does job theta"
    }
}

我正在使用正文中包含的 http 帖子触发逻辑应用:

{ "logicappname": "beta" }

但“logicappname”的值可能是 alpha、beta 或 theta。我现在需要设置一个变量,其中包含“beta”的 url 值。如果没有 jsonpath 支持,如何实现?

我已经在 json 解析来自 blob 的文件内容,这给了我令牌......但我看不到如何选择我需要的值。非常感谢您的帮助,谢谢。

【问题讨论】:

    标签: azure azure-logic-apps jsonpath


    【解决方案1】:

    根据您的要求,我认为只需使用“解析 JSON”操作即可。请参考以下步骤:

    1. 我将文件 testJson.json 上传到我的 blob 存储,然后在我的逻辑应用程序中获取并解析它。

    2.我们可以在下面的截图中看到三个url。由于要获取betaurl 值,是第二个,所以我们可以选择第二个。

    如果您想通过“收到 HTTP 请求时”触发器中的参数 logicappname 获取 url 值,则可以在创建 result 变量时使用表达式。

    在我的截图中,表达式是:

    body('Parse_JSON')?[triggerBody()?['logicappname']]?['url']
    

    由于您对问题的描述有点不清楚,我对I am already json parsing the file contents from the blob and this IS giving me the tokens 的含义感到困惑,为什么其中涉及“令牌”?在最初的问题中,您似乎想通过 jsonpath 执行此操作,但在最新描述中您说 without jsonpath ?所以如果我误解了你的问题,请告诉我。谢谢。

    【讨论】:

    • 非常感谢您的详细回复!是的,这有效:-) 太棒了。我可以看到您所做的表达式有效地实现了 jsonpath 的功能。即使用动态值选择属性以确保返回正确/所需的值。最初,我想知道是否有办法在逻辑应用程序中“执行”jsonpath。似乎没有对 jsonpath 的直接支持。一旦我意识到传统的 jsonpath 不是一个选项,我转而尝试询问“什么是正确的逻辑应用程序方法来做到这一点”。你的回答解决了这个问题。再次感谢!
    【解决方案2】:

    不确定我是否理解您的问题。但我相信你可以在 http 触发后使用 Pars Json 动作。 这样您就可以控制传入的 JSON 消息,并且可以在后续操作中选择“URL”值作为动态内容。 如果我对您的问题的理解有误,请告诉我。

    【讨论】:

    • 谢谢。是的,我知道 json 解析,但不清楚它如何帮助我集中选择我需要的值。我已经简化并重写了这个问题。您能否建议如何使用 json 解析来实现这一目标?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 2017-10-22
    • 2013-04-11
    • 1970-01-01
    相关资源
    最近更新 更多