Azure Data Factory管道WebHook活动传递变量单引号报错如何解决?
报错原因
你的报错是Azure Data Factory(ADF)表达式语法的单引号冲突导致的:
- ADF中字符串字面量使用单引号包裹,你外层
@json()的入参用了单引号包裹整个JSON字符串,内层variables('name')的单引号会提前终止外层字符串的边界,导致语法解析失败。 - ADF不支持反斜杠
\转义单引号的规则,所以你之前用\'name\'的尝试无法生效。
解决方法
方法1:双单引号转义内层单引号
ADF中字符串内的字面量单引号需要用两个连续的单引号做转义,修改后的表达式如下:
@json('{ "body": "@{pipeline().parameters.body}", "name": "@{variables(''name'')}" }')
方法2(更推荐):使用createObject函数构造JSON
完全避免手动拼接JSON字符串的转义问题,直接用ADF内置的createObject函数生成目标对象,ADF会自动序列化为合法JSON:
@createObject( 'body', pipeline().parameters.body, 'name', variables('name') )
该方案的优势:
- 不需要处理任何引号转义逻辑,语法容错率更高
- 如果
pipeline().parameters.body本身是结构化的JSON对象,会自动保留原有结构,不会出现字符串拼接导致的二次转义问题 - 后续新增字段时不需要调整JSON字符串格式,维护成本更低
内容的提问来源于stack exchange,提问作者inspiredd
相关产品推荐
相关产品推荐

