将数组转换为逗号分隔字符串的 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":', ''), '}', ''))
这将为您提供所需的准确输出。
这看起来很基本,但我找不到合适的管道表达式函数来实现它。
我已将数组变量 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":', ''), '}', ''))
这将为您提供所需的准确输出。