Azure 数据工厂通过特定字符串/值查找 JSON 对象,然后选择不同的值

问题描述 投票:0回答:1

我有一个旧版 API(没有开发支持),我正在从中提取数据。下面是activity().outputs.body.data的输出

                {
                "column_id": 1,
                "type": "text",
                "varname": "foo_id",
                "label": "Foo ID",
                "value": "1234",
                "is_core": "yes",
                "orig_label": "Foo ID"
            },
            {
                "column_id": 23,
                "type": "text",
                "varname": "Foo_name",
                "label": "Foo name",
                "value": "blah blah",
                "is_core": "yes",
                "orig_label": "Foo name"
            },
            {
                "column_id": 15,
                "type": "text",
                "varname": "foo_bar",
                "label": "Foo Bar",
                "value": "beers beers beers",
                "is_core": "yes",
                "orig_label": "Foo Bar"
            }

不幸的是,数据的结构方式是,如果前端有空值,那么 API 不会传递对象。所以,你可能会在 JSON 中得到 10 个对象,也可能会得到 4 个。这意味着我不能偷懒,通过 data[1].value 选择值。

我需要动态搜索 varname,然后在 that 对象中选择值。

到目前为止,我有这样的事情:

@substring(coalesce(activity().outputs?.body?.data, ''),'foo_id').value

如果该对象存在,我想在上面返回“1234”,或者如果它不存在 - 只需传递一个“”

但是我没有得到我期望的输出。一旦我悬置了动态内容字符串,我就可以完成其余的事情 - 但我陷入了这一方面。

希望有人可以帮助解决动态内容查询字符串。

json azure azure-functions azure-data-factory azure-logic-apps
1个回答
0
投票
  • 创建一个新的字符串变量来存储所需输出的值。将该字符串的默认值指定为空字符串。

  • 您可以为从旧 API 提取数据的 Web 活动旁边的每个活动添加 。在for-each设置项中,给出动态表达式为

    @activity().outputs?.body?.data

  • 在 for-each 活动中,采用 if 活动并将 if 活动的动态条件指定为

    @equals(item().varname,'foo2_id')

  • 在 if 活动的 true 部分中,添加一个设置变量活动来设置变量的值。将该变量的表达式设为
    @item().value
    .

© www.soinside.com 2019 - 2024. All rights reserved.