Power Automate提取邮件内容时如何将数组整串转为键值对格式
Power Automate 字符串数组转键值对实现方法
首先先纠正你给出的目标JSON的语法问题:JSON规范中数组不能直接存储"键":"值"格式的键值对,合法的目标结构有两种,分别对应不同的实现方式:
方法1:生成包含多个单键值对对象的数组(无需循环,性能更好)
适合后续步骤需要按数组遍历键值对的场景,直接用「数据操作」分类下的「选择」操作即可:
- 「选择」操作的从参数,选择你过滤完成后的文本数组
- 点击映射输入框右侧的「切换文本模式」按钮(小T图标)
- 左侧映射栏填入表达式:
split(item(), ': ')[0],用来提取冒号前的键名 - 右侧映射栏填入表达式:
split(item(), ': ')[1],用来提取冒号后的值
执行完成后输出的就是符合JSON规范的键值对数组结构。
方法2:生成单个完整的键值对对象
适合后续步骤需要直接按键名取值的场景,用变量+循环实现:
- 先添加「初始化变量」操作,变量类型选择对象,名称可设为
extractedData,初始值填{} - 添加「应用到每一个」操作,遍历你过滤完成后的文本数组
- 循环内部添加「设置变量」操作,变量选择
extractedData,值填入表达式:
addProperty(variables('extractedData'), split(item(), ': ')[0], split(item(), ': ')[1])
- 循环执行完成后,
extractedData变量就是包含所有键值对的单个对象,直接放到你需要的body字段即可。
兼容值内带冒号的优化方案
如果你的业务场景中值的内容可能包含冒号,可以把取值的表达式替换为下面的写法,只会分割第一个出现的冒号:
substring(item(), add(indexOf(item(), ': '), 2))
内容的提问来源于stack exchange,提问作者Niquuu
相关产品推荐
相关产品推荐

