ADF中使用replace函数处理API返回的API-Key无法去除多余双引号问题
ADF API返回结果多余双引号处理方案
失效原因
你使用的replace函数未生效,是因为ADF表达式中双引号属于特殊控制字符,直接匹配普通"无法命中转义后的双引号,部分场景下API返回的Response外层双引号是JSON序列化后的字符串边界标识,不属于普通文本内容,普通替换无法识别。
解决方法
- 优先使用
json()函数解析
Response字段本质是被额外包裹双引号的合法JSON字符串,直接调用json函数解析即可自动剥离外层多余双引号,不会误删内容内部的双引号:@json(activity('GetBearerToken').output.Response) - 用
trim()定向移除首尾双引号
确认多余双引号仅出现在内容首尾时,可使用trim函数指定移除首尾的",比全量替换更安全:@trim(activity('GetBearerToken').output.Response, '"') - 修正replace的转义写法
必须全量替换时,ADF表达式中匹配双引号需要做转义处理,正确写法如下:@replace(activity('GetBearerToken').output.Response, '\\"', '')
验证方式
处理前可新增一个Set Variable活动,直接输出原始activity('GetBearerToken').output.Response的值,确认多余双引号的存在形式后选择对应方案即可。
内容的提问来源于stack exchange,提问作者Espen
相关产品推荐
相关产品推荐

