如何从内联代码操作的输出数组中提取姓名与邮箱?
Power Automate中提取用户数组的姓名与邮箱方法
错误原因分析
你用Outputs('action name')[1]报错,大概率是两个问题:
- Power Automate的数组索引从0开始,且你可能未正确对应数组内的对象字段,或内联代码返回的数组嵌套在
value这类包装属性中; - 直接用索引访问数组元素时,若数组为空或结构不匹配,会触发模板无效错误。
具体解决步骤
先确认内联代码的返回结构
先添加Compose动作,将内联代码的输出传入并运行流,确认结构类型:
- 情况A:纯数组(直接返回用户对象集合)
[{"姓名字段名":"张三","邮箱字段名":"zhangsan@xxx.com"}, ...] - 情况B:带包装的对象(数组嵌套在
value或其他属性里){"value": [{"姓名字段名":"张三","邮箱字段名":"zhangsan@xxx.com"}, ...]}
针对情况A(纯数组)
提取单个用户(比如第一个用户):
- 姓名:
Outputs('你的内联代码动作名')[0].姓名字段名 - 邮箱:
Outputs('你的内联代码动作名')[0].邮箱字段名
(示例:若字段为displayName和mail,则写Outputs('GetUsers')[0].displayName)
- 姓名:
批量给所有用户发邮件:
- 添加「应用到每一个」动作,将内联代码的输出作为输入;
- 在邮件动作中,用以下表达式获取当前用户信息:
- 姓名:
item().姓名字段名或item()['姓名字段名'] - 邮箱:
item().邮箱字段名或item()['邮箱字段名']
- 姓名:
针对情况B(带包装的数组)
提取单个用户:
- 姓名:
Outputs('你的内联代码动作名')?['value'][0].姓名字段名 - 邮箱:
Outputs('你的内联代码动作名')?['value'][0].邮箱字段名
(?为可选链操作符,避免数组为空时触发报错)
- 姓名:
批量发邮件:
- 将
Outputs('你的内联代码动作名')?['value']作为「应用到每一个」的输入; - 后续用法与情况A的批量操作一致。
- 将
内容的提问来源于stack exchange,提问作者SS Lee
相关产品推荐
相关产品推荐

