Power Automate中如何从数组提取指定前缀的字符串值?
在Power Automate中提取数组内指定前缀的字符串
问题背景
原始数组如下:
[ { "Name": "Ca_somethingunkown" }, { "Name": "Mv_somethingunkown" } ]
需要仅提取以"Mv"为前缀的Name字段值,最终输出单独的字符串(如"Mv_somethingunkown"),而非数组或对象结构。
过往尝试
曾使用Filter Array、Compose、Select操作,结合Startswith/Contains函数,但结果要么是数组形式,要么无输出。最初使用的Filter Array表达式为:@startwith(['Name'],'Mv')
更新进展
调整表达式后,输出了包含单个对象的数组:
{ "body": [ { "Name":"Mv_somethingunkown" } ] }
但目标是获取纯字符串,而非数组包裹的对象。
解决方案
分步实现(直观易维护)
Filter Array 过滤数组
- 输入选择目标数组
- 条件表达式填写:
@startswith(item()?['Name'], 'Mv') - 此步骤会得到仅包含符合前缀条件的对象数组
Select 提取字段值
- 输入选择Filter Array的输出
- 映射项中,值填写:
item()?['Name'] - 此步骤会得到仅含目标字符串的数组(如
["Mv_somethingunkown"])
Compose 取数组首个元素
- 表达式填写:
first(body('Select')) - 最终输出即为单独的目标字符串
- 表达式填写:
一步式表达式(精简)
若想直接通过一个Compose操作完成,可使用以下表达式(替换你的数组变量名为实际数组的输出引用):
first(xpath(xml(json(concat('{"root":', outputs('你的数组变量名'), '}'))), '//Name[starts-with(text(), "Mv")]/text()'))
内容的提问来源于stack exchange,提问作者vtcs
相关产品推荐
相关产品推荐

