Power Automate实现JSON用户对象数组转字符串写入SharePoint列表
Power Automate 实现组用户名字符串拼接方案
你不需要复杂配置,3步就能实现需求,不用啃Compose的复杂用法:
- 提取用户数组:你从Microsoft Graph拿到的返回结果里,所有用户对象都存在
value字段下,Power Automate会自动识别JSON结构,不需要额外做解析操作。 - 批量提取显示名:新增一个「Select」数据操作,From 参数选择Graph返回结果的
value数组,点击映射栏右侧的「切换到文本模式」按钮(就是那个T形状的图标),映射值填表达式item()?['displayName']。运行后这一步会输出一个只包含所有用户显示名的纯文本数组,比如["User one", "User two", "User three"]。 - 拼接成目标格式字符串:你可以加一个Compose操作,或者直接在「创建SharePoint列表项」的对应字段里填表达式,表达式内容为
join(body('Select'), ', '),运行后输出的结果就是你要的逗号分隔格式:User one, User two, User three,直接存入SharePoint对应字段即可。
如果你不想加Select操作,想单步用Compose实现也可以,直接在Compose里输入如下表达式即可,只是后续维护调整字段的时候不如Select直观:
join( xpath( xml(json(concat('{"root": {"user": ', outputs('HTTP_请求获取组成员')?['body/value'], '}}'))), '//user/displayName/text()' ), ', ' )表达式里的
outputs('HTTP_请求获取组成员')替换成你实际调用Graph的操作名称就行。
注意事项
- 如果存在部分用户displayName为空的情况,拼接结果会出现多余的连续逗号,可以把Select里的映射表达式改成兜底逻辑:
if(empty(item()?['displayName']), item()?['userPrincipalName'], item()?['displayName']),空值时自动填充用户主体名称,避免格式错乱。 - 存入SharePoint时如果组内成员较多,注意单行文本字段255字符的长度限制,成员数超过50人建议使用多行文本字段存储。
内容的提问来源于stack exchange,提问作者Dan Williams
相关产品推荐
相关产品推荐

