如何阻止Azure Data Factory自动转义双引号?
解决Azure Data Factory Lookup活动返回字符串双引号被转义的问题
方法1:修正表达式中的转义符匹配
你之前用的@replace(...)无效,是因为ADF表达式里单个反斜杠是转义字符,要匹配实际输出里的\,必须写两个反斜杠\\。正确的表达式应该是:
@replace(activity('Lookup JSON').output.firstRow.id, '\\', '')
这样就能把所有转义用的反斜杠替换掉,得到原始的带双引号的字符串。
方法2:换个思路,在ADF里拼接字符串(推荐)
没必要在存储过程里拼接带引号的字符串,直接让存储过程返回原始的id列表:
SELECT id FROM your_table WHERE ...
然后在ADF里用表达式完成拼接,完全避免转义问题:
@join(activity('Lookup JSON').output.value, (item)=>concat('"', item.id, '"'), ',')
这个表达式会遍历Lookup返回的所有id,给每个id加上双引号,再用逗号拼接成最终字符串。
方法3:将返回值解析为JSON
如果存储过程返回的格式本身符合JSON数组(比如["1","2","3"]),直接用@json()函数解析成数组,后续操作更灵活,也不用处理转义字符:
@json(activity('Lookup JSON').output.firstRow.id)
内容的提问来源于stack exchange,提问作者nowYouSeeMe
相关产品推荐
相关产品推荐

