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

Logic Apps 提取JSON数组指定键值拼接为分隔字符串方法

报错原因

body('Parse_JSON_owners')?['value'] 是对象数组,Azure Logic Apps/Power Automate 的模板语法不支持直接从数组根节点批量选取子元素属性,数组仅支持通过整数索引访问单个元素,因此直接追加?['mail']会触发你看到的报错。

正确实现方案

你需要先把数组中每个对象的mail字段提取为纯字符串数组,再调用join做拼接,有两种常用实现方式:

方式1:可视化Select操作实现(易维护)

  • 新增「Select」数据操作:
    • 「起始位置」参数填body('Parse_JSON_owners')?['value']
    • 点击映射栏右侧的切换按钮,切到文本映射模式(不要用默认的键值对模式)
    • 映射值填item()?['mail']
      该操作会输出一维字符串数组,格式为["joebloggs@domain.com", "johndoe@domain.com"]
  • 拼接时直接引用Select输出即可,表达式为:
    join(body('Select'), ';')
    

方式2:单表达式内联实现

不需要新增额外操作,直接在需要拼接结果的位置写入以下表达式,一步完成提取+拼接:

join(select(body('Parse_JSON_owners')?['value'], lambda item, item?['mail']), ';')
可选优化

如果数组中可能存在mail字段为null/空值的对象,可以先加一层过滤,避免拼接结果出现多余分号或空内容:

join(
  select(
    filter(body('Parse_JSON_owners')?['value'], lambda item, not(empty(item?['mail']))),
    lambda item, item?['mail']
  ),
  ';'
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 20:09:34