Mule YAML配置中如何定义数组并根据值动态获取对应key
解决方案
1. 修正YAML配置
你添加的---是YAML的多文档分隔符,放在list:之后会将配置拆分为两个独立的YAML文档,破坏原有嵌套结构,导致Mule无法识别。正确的配置不需要额外加分隔符,保持你最初的结构即可,可直接放在Mule的属性配置文件中使用:
list: roles: - admin - finance - hr - sales employee: - emp1 - emp2 - emp3
2. 实现根据值动态检索对应key
通过DataWeave表达式即可实现需求,核心逻辑是遍历list对象,过滤出值数组包含目标code的键,取匹配结果即可。
示例表达式(取第一个匹配的key)
p('list') filterObject ((valueArr, key) -> valueArr contains vars.code) keysOf()[0]
效果验证:
- 当流变量
vars.code = "finance"时,返回结果为roles - 当流变量
vars.code = "emp1"时,返回结果为employee
如果存在同一个code出现在多个数组的场景,去掉末尾的[0],即可返回所有匹配的key组成的数组。
内容的提问来源于stack exchange,提问作者Star
相关产品推荐
相关产品推荐

