Azure Data Factory JSON模板中布尔值传递问题求助
Azure Data Factory向Logic App传递布尔值的解决方案
问题根源
直接传递布尔值时,ADF会输出大写的True/False,不符合JSON规范(JSON要求布尔值必须为小写true/false),导致请求体解析失败;以字符串形式传递时,Logic App因期望布尔类型而报错。
解决方案一:在ADF中生成合法的JSON布尔值
使用json()配合string()函数,将ADF的布尔参数转换为符合JSON规范的小写布尔值,示例代码如下:
{ "emailSubject": "@{variables('jsonEmailLogicAppBody')[0]}", "emailContent": "@{variables('jsonEmailLogicAppBody')[1]}", "onDevelop": @{json(string(pipeline().parameters.sendMailAsTest))} }
原理
string(pipeline().parameters.sendMailAsTest)将布尔参数转为字符串(如"True")json()函数会将该字符串解析为原生JSON布尔值,输出小写的true/false,彻底避免JSON格式错误。
解决方案二:在Logic App端转换字符串为布尔值
若ADF端调整受限,可在Logic App中接收字符串后转换为布尔类型,示例表达式:
bool(triggerBody()?['onDevelop'])
该函数会自动识别"True"/"False"字符串并转换为对应的布尔值,保证Logic App后续流程正常执行。
内容的提问来源于stack exchange,提问作者Alex Blanes
相关产品推荐
相关产品推荐

