【发布时间】:2019-11-06 22:19:04
【问题描述】:
在一个逻辑应用程序中,我有 2 个数组,它们都被解析为 JSON {"Name":{"type":"string"},"Id":{"type":"string"}}
(Array 1)
[
{"Id": 1, "Name": "A"},
{"Id": 2, "Name": "B"},
{"Id": 3, "Name": "C"},
{"Id": 4, "Name": "D"},
{"Id": 5, "Name": "E"}
]
(Array 2)
[
{"Name": "A"},
{"Name": "D"}
]
我有一个 For each 循环,以 @body('Array_1') 作为输入。在循环内部,我首先有一个条件,我想检查类似
"expression": {
"and": [
{
"not": {
"contains": [
"@body('Array_2')",
"@items('Array_1')['Name']"
]
}
}
]
}
也就是说,我想看看Array 2中是否不包含某些名称
预期结果是条件应评估为“真”3 次(对于 name="B"、“C”和“E”),但它在所有检查中都评估为真 (5)。
如何遍历数组并检查属于我正在迭代的项目的属性?
【问题讨论】:
-
您是否在逻辑应用的“For each”的“设置”中启用“并发控制”并将“并行度”设置为 1?如果“并发控制”设置为“关闭”,可能会导致您提到的这个问题。
-
我会试试的。问题是我试图实现的目标是在逻辑应用程序的其他地方做,得到预期的结果,而不改变你正在谈论的参数。唯一的区别是“Array 1”没有“Id”属性,让我相信我错误地访问了“Array 1”中对象的属性。编辑:试过了。不幸的是,同样的错误,失败的时间更长。
-
嗨,Anders,我已经在回答区发布了解决方案,请试一试。如果还有问题,请告诉我。
标签: azure azure-functions azure-logic-apps