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

在Logic Apps中通过动态键从对象数组取值的问题

在Logic Apps中通过动态键从对象数组取值的解决方案

问题说明

给定如下JSON结构的数组数据:

{
  "foo.companies": {
    "type": "Array",
    "value": [
      {
        "foo": [
          "123"
        ]
      },
      {
        "bar": [
          "123"
        ]
      }
    ]
  }
}

需要实现类似PHP中通过动态键获取对应值的逻辑:

$bar = ['foo' => 123];
$dynamicField = 'foo';
$result = $bar[$dynamicField];
// $result contains 123

但尝试使用表达式item()?.item()['dynamic_key_field']?[0]执行失败,需解决Logic Apps中的动态键取值问题。

解决方法

1. 遍历数组时的动态取值

如果是在For each循环中遍历foo.companies.value数组,要获取当前元素中动态键对应的值,使用以下表达式:

item()?[variables('dynamic_key_field')]?[0]
  • item()指代循环中的当前对象元素(例如第一个元素为{"foo": ["123"]})
  • variables('dynamic_key_field')是存储目标键名的变量(比如值设为foo或bar)
  • ?[0]用于提取键对应数组中的第一个元素(因为你的键值是数组类型)

2. 直接从指定索引元素取值

若无需遍历,直接从数组某一索引位置的元素中取动态键的值,比如取第一个元素:

body('你的触发器或动作名称')?['foo.companies']?['value']?[0]?[variables('dynamic_key_field')]?[0]

将body('你的触发器或动作名称')替换为实际输出该JSON数据的触发器或动作名称即可。

3. 关键注意事项

  • 确保dynamic_key_field变量的类型为字符串,且值与目标键名完全匹配
  • 使用?空值安全运算符可避免因键不存在导致的表达式执行报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:27:32