You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logic App调用API遇ActionFailed错误,如何处理空options数组?

问题根源分析

你遇到的执行失败,核心原因是if语句返回值的类型不匹配:

  • 当options不为空时,你返回的是items('For_each')?['options'],也就是选项数组本身(比如示例里的[{id:10017,...}, ...])
  • 当options为空时,你返回的是一个包含options对象的数组([{"options": [ {...} ]}]),后续依赖该输出的动作期望接收数组类型,但实际收到的是嵌套对象数组,类型不匹配导致执行失败。
最优解决方案

修正if语句的true分支,让它返回和正常情况一致的选项数组类型,直接返回包含N/A选项的数组即可,不需要额外嵌套options键。

修正后的表达式

if(
    empty(items('For_each')?['options']),
    json('[
        {
            "id": 1,
            "title": {
                "English": "N/A"
            },
            "value": "N/A",
            "properties": null,
            "image": {
                "sLink": "N/A"
            }
        }
    ]'),
    items('For_each')?['options']
)

额外优化:兼容options属性不存在的情况

如果存在items('For_each')里没有options属性的场景,可以用coalesce先兜底为空数组,再判断空值,避免属性不存在引发的异常:

if(
    empty(coalesce(items('For_each')?['options'], [])),
    json('[
        {
            "id": 1,
            "title": {
                "English": "N/A"
            },
            "value": "N/A",
            "properties": null,
            "image": {
                "sLink": "N/A"
            }
        }
    ]'),
    coalesce(items('For_each')?['options'], [])
)
验证逻辑

修正后,无论options是空数组还是正常数组,返回的都是相同类型的选项数组,后续依赖该输出的动作能正确识别数据结构,不会再触发类型不匹配导致的执行失败,同时满足空数组时加载N/A选项的需求。

内容的提问来源于stack exchange,提问作者user19307825

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 11:19:53