将数组转换为逗号分隔字符串的 ADF 表达式

ADF expression to convert array to comma separated string

这看起来很基本,但我找不到合适的管道表达式函数来实现它。

我已将数组变量 VAR1 设置为以下值,这是 ADF 管道中 SQL 查找 activity 的输出:

[
    {
        "Code1": "1312312"
    },
    {
        "Code1": "3524355"
    }
]

现在,我需要将其转换为逗号分隔的字符串,以便我可以将其传递给下一个 activity 中的 SQL 查询 - 类似于:

"'1312312','3524355'"

我无法找到一个表达式函数来遍历数组元素,也无法将数组转换为字符串。我看到的唯一管道表达式函数是将字符串转换为数组,而不是相反。

我是不是漏掉了一些基本的东西?如何实现?

如果数组中只有两个元素,那么您可以这样做:

@concat(variables('variable_name')[0].Code1, ',', variables('variable_name')[1].Code1)

我使用 ForEach 循环 activity 来迭代我的数组并使用带有 concat 表达式函数的设置变量任务来创建我的逗号分隔字符串。

希望他们在表达式语言本身中有一个迭代器函数,那会使事情变得容易得多。

使用 'Add dynamic content' 中的 'collection' 函数中的 'join' 函数。例如:

join(variables('ARRAY_VARIABLE'), ',')

我遇到了同样的问题并且仅使用连接函数并不完全满意,因为它保留了 json 对象的键。此外,使用迭代器方法可以工作,但如果您的列表很长,它会不必要地昂贵且缓慢。这是我的方法,使用连接和替换:

replace(replace(join(variables('VAR1'), ','), '{"Code1":', ''), '}', ''))

这将为您提供所需的准确输出。