Azure Logic Apps中移除数组body字段适配API请求格式
解决Azure Logic Apps数据处理与API请求格式问题
1. 修正Select动作的输出层级问题
你当前Select输出带body层级,是因为Select的输入选错了对象。Dataverse查询返回的解析JSON结果,数组通常在value属性里,所以Select的输入要指定为解析JSON后的数组部分,用以下表达式:
body('Parse_JSON')?['value']
这样Select的输出就是纯数组,不会包含外层的body结构,直接匹配API对数组参数的要求。
2. 处理可选AddressLine字段,避免工作流失败
针对可选字段,不要直接硬引用(字段不存在时会触发空引用错误),用coalesce表达式处理空值——它会返回第一个非空值,字段不存在则返回预设的默认值(比如空字符串)。示例映射规则:
AddressLine1:coalesce(item()?['AddressLine1'], '')AddressLine2:coalesce(item()?['AddressLine2'], '')- 必填字段直接引用:
item()?['City']
这样即使字段不存在,工作流也能正常执行,不会因空值中断。
3. 正确构建API请求
API请求中直接将Select动作的输出(纯数组)绑定到对应参数位置即可,无需用字符串替换这种不规范的方法。比如API请求的JSON体可直接写为:
{ "addresses": @{body('Select')} }
通过逻辑应用的动态内容选择Select的输出,就能生成格式合规的请求。
内容的提问来源于stack exchange,提问作者Francesco
相关产品推荐
相关产品推荐

