Azure Logic App 单对象转为数组适配Filter Array操作解决方案问询
解决Azure Logic App中Parse JSON输出单对象导致Filter Array报错的方案
你提到的两种思路都可以落地,这里提供两种可直接复用的实现方式:
方案1:用array()函数强制转换(优先推荐,改动最小)
无需新增分支或变量,直接修改Filter Array步骤的from输入即可:
- 操作步骤:
- 点击Filter Array步骤的「从」输入框,切换到「表达式」 tab
- 输入表达式:
array(body('Parse_JSON')),替换原来直接引用Parse JSON输出的配置 - 保存流后重新测试即可
- 逻辑说明:
array()是Logic App内置的类型转换函数,会自动适配两种输入场景:- 输入为数组时,直接返回原数组
- 输入为单个对象时,自动将对象包裹为长度为1的数组,完全满足Filter Array的输入类型要求
该方案无需额外步骤,执行效率最高。
方案2:类型判断+数组变量适配(适合需分场景做前置处理的情况)
如果你需要针对单对象/数组返回结果做不同的前置处理,可以用分支判断的方案:
- 流程最开始新增「初始化变量」步骤,变量类型设为
数组,名称可设为FilterInput,默认值为空数组[] - Parse JSON步骤后新增「条件」步骤,判断返回结果的类型,条件表达式为:
equals(type(body('Parse_JSON')), 'array') - 条件为真(返回结果是数组):新增「设置变量」步骤,将
FilterInput的值设置为Parse JSON的输出 - 条件为假(返回结果是单个对象):新增「追加到数组变量」步骤,将Parse JSON的输出追加到
FilterInput中 - 将后续Filter Array步骤的
from输入替换为变量FilterInput即可
两种方案都不需要修改你之前调整的Parse JSON schema配置,保留允许
object/array两种类型的设置即可。
内容的提问来源于stack exchange,提问作者Maari
相关产品推荐
相关产品推荐

