从 LogicApp 中的 json 获取值

use*_*399 4 azure jsonpath azure-logic-apps

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

在我的逻辑应用程序中,我正在从 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"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

{ "logicappname": "beta" }
Run Code Online (Sandbox Code Playgroud)

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

我已经使用 json 解析 blob 中的文件内容,这给了我令牌...但我不知道如何选择我需要的值。希望有任何帮助,谢谢。

Hur*_*hen 5

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

1.我将一个文件上传testJson.json到我的 blob 存储,然后获取它并在我的逻辑应用程序中解析它。 在此输入图像描述

2.url我们可以看到下面的截图中有三个。由于你要获取url的值beta是第二个,所以我们可以选择第二个。 在此输入图像描述

如果您想通过“收到 HTTP 请求时”触发器的参数url获取值,可以在创建变量时使用表达式。 logicappnameresult在此输入图像描述

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

body('Parse_JSON')?[triggerBody()?['logicappname']]?['url']
Run Code Online (Sandbox Code Playgroud)

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