Mule 3中#[payload.?status == 'completed']含义及Mule 4实现咨询
Mule 3与Mule 4中集合元素过滤的语法说明
Mule 3中payload.?status == 'completed'里问号的含义
在Mule 3的DataWeave 1.0中,这个问号是集合过滤操作符。它的作用是遍历集合类型的payload,筛选出所有status属性值等于'completed'的元素,最终返回一个包含所有符合条件元素的新集合。如果payload不是集合类型,该表达式会返回空集合或触发错误(根据具体场景而定)。
Mule 4中实现相同功能的方式
Mule 4采用DataWeave 2.0,语法做了调整,实现相同的集合过滤功能有两种常用写法:
- 使用
filter函数(可读性更强):payload filter ((item) -> item.status == 'completed') - 使用过滤缩写语法(更简洁):
payload[?($.status == 'completed')]
需要注意的是,Mule 4中的payload.key?是用来检查指定键是否存在的语法,和集合过滤的语法是不同的功能,不要混淆。
内容的提问来源于stack exchange,提问作者kushma gonna
相关产品推荐
相关产品推荐

