我正在调用Azure函数,并使用动态内容构建请求体。
这就是我构建它的方式:
{
"test": "Test1",
"data": "@{activity('Upload SKU').output}"
}
我对"数据"节点有问题。@{activity('Upload SKU').output
是一个json字符串。因此,动态内容会造成"混乱"。它无法逃脱。
它创建了这个:
{
"test": "Test1",
"data": "{"a": "1"}"
}
如何转义@{activity('Upload SKU').output
,以便{"a": "1"}
创建{"a": "1"}
,以便将其视为字符串,而不是"data"
下的节点
这就是我想要实现的:
{
"test": "Test1",
"data": "{"a": "1"}"
}
你可以从我以前的案例中得到一些线索:错误"BadRequest";在ADF中调用Azure函数时。
解决方案是在动态内容中使用@json()
和@concat()
。对你来说,整个data
可能看起来像:
@json(concat('{"test": "Test1,"data":"',@{activity('Upload SKU').output,'"}'))
仅供总结:
事实证明,ADF表达式编辑器中存在错误,因为当@Hooch在不使用表达式编辑器的情况下将完全相同的表达式直接放入"body"字段时,它就可以工作了。
我遇到了类似的问题,我已经使用JSON转义方法解决了这个问题,该方法在"如何在JSON中转义字符串?"中讨论?。
在你的情况下,我的ADF表达式看起来像
{
"test": "Test1",
"data": "@{replace(replace(activity('Upload SKU').output, '', '\'), '"','"')}"
}