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

如何用Logicapp表达式读取父节点可变但层级固定的JSON子元素

解决方案

在Logic Apps中,表达式不支持直接用*作为通配符匹配动态对象键,你需要借助values()函数提取对象的所有值,再结合层级位置定位目标元素。针对你的场景,具体表达式如下:

1. 获取数组中所有element的值

@map(values(values(body('previous-action')?['root'])[0])[0], x => x?['element'])

该表达式会返回包含所有element值的数组,针对你的示例JSON,结果为["value1", "value2"]。

2. 获取数组中第一个元素的element值

@values(values(body('previous-action')?['root'])[0])[0][0]?['element']

针对示例JSON,该表达式会返回value1。

表达式拆解

  • body('previous-action')?['root']:定位到固定的root节点
  • values(...):提取对象的所有值(因每个可变父节点下仅含一个子节点,取第一个值即可)
  • 第一层values(body('previous-action')?['root'])[0]:获取root下可变节点(如abc1或xyz1)对应的对象
  • 第二层values(...)[0]:获取可变节点下的数组节点(如abc2或xyz2对应的数组)
  • 最后通过map遍历数组提取element,或直接通过索引定位单个元素

为什么你的方法无效

Logic Apps的表达式语法不支持?['*']或?*这类通配符写法,无法直接匹配动态键名,必须通过values()函数将对象转换为值数组后再操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:45:34