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

在Logic Apps中如何从字符串数组传递OData $filter参数?

在Logic Apps中基于数组生成OData $Filter的OR格式参数

看起来你的API可能不支持in操作符(或者权限层面限制了这个用法),那咱们换个思路,用or连接多个eq条件来实现批量匹配。下面是两种具体的实现方式,你可以选顺手的来:

方式一:用Select+Join分步实现(直观易调试)

  • 添加Select操作
    把你的数组变量variables('myarray')作为Select的输入集合,在映射规则里写这个表达式:concat('(mynumer eq ''', item(), ''')')(这里的两个单引号是Logic Apps里的转义写法,最终会输出一个单引号包裹元素值)。执行后,数组会被转换成类似 ["(mynumer eq '1122')", "(mynumer eq '1133')"] 的格式。
  • 添加Join操作
    输入选择Select操作的输出结果,分隔符填or(注意前后要有空格)。这一步会把数组里的字符串拼接成:(mynumer eq '1122') or (mynumer eq '1133')。
  • 在HTTP连接器中使用拼接结果
    打开HTTP连接器的查询参数设置,添加$filter参数,值选择Join操作的输出即可。

方式二:用一行表达式直接生成(更简洁)

如果你不想多加两个操作步骤,可以直接在HTTP的$filter参数里写这个表达式:

join(map(variables('myarray'), concat('(mynumer eq ''', item(), ''')')), ' or ')

这个表达式会直接把数组转换成我们需要的OR条件字符串,逻辑和方式一完全一致,省去了中间的Select和Join操作。

小提示

如果你的数组可能为空,建议加个判断逻辑,比如用if(empty(variables('myarray')), '', 上面的表达式),避免生成无效的$filter参数导致API报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 09:27:47