如何在Azure中的ADF V2中对动态内容中的json进行转义



我正在调用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, '', '\'), '"','"')}"
}

最新更新