Mule Dataweave使用通配符访问数据

Mule Dataweave使用通配符访问数据,mule,dataweave,Mule,Dataweave,是否可以在dataweave中使用通配符访问数据 我的有效载荷为入口1\u m1、入口2\u m1、入口3\u m1 条目将是动态的,可能还有其他条目,如条目1、条目2、条目3。 所以我应该能够得到这些值,不管最后一个数字是什么,我应该得到(Entry_1_m*)的值。在dataweave中可能吗 %dw 1.0 %input payload application/java %output application/xml --- { Employee:{ empRequ

是否可以在dataweave中使用通配符访问数据

我的有效载荷为入口1\u m1、入口2\u m1、入口3\u m1 条目将是动态的,可能还有其他条目,如条目1、条目2、条目3。 所以我应该能够得到这些值,不管最后一个数字是什么,我应该得到(Entry_1_m*)的值。在dataweave中可能吗

%dw 1.0
%input payload application/java
%output application/xml
---
{
    Employee:{
        empRequest:{
            ReqNumber:payload.RequestNumber,
            Reasons:{
                Entry:payload.Entry_1_m1,
                Entry:payload.Entry_2_m1,
                Entry:payload.Entry_3_m1
            }
        }
    }
}
使用operator获取键列表,该列表将帮助您映射以
Entry\u 1\m
开头的所有字段。下面的代码对我有用

%dw 1.0
%input payload application/java
%output application/xml
%var keys = (payload pluck $$) filter ($ startsWith 'Entry_1_m')
---
{
    Employee:{
        empRequest:{
            ReqNumber:payload.RequestNumber,
            Reasons: {(keys map {
                Entry:payload[$]
            })}
        }
    }
}

希望这有帮助。

但我有3个条目(条目1、条目2、条目3)。。。为3个条目编写3个过滤器不会产生影响??因为每个条目只会出现一次,即只有一条记录有条目_1_m2,一条记录有条目_2_m2,以此类推。。。此外,我只感兴趣,直到进入你不必写3个过滤器。只需在现有的基础上添加一个或多个条件,即可解决您的问题。类似于
%var keys=(有效负载清除$$)过滤器($startsWith'Entry\u 1\u m')或($startsWith'Entry\u 2\u m')或($startsWith'Entry\u 3\u m'))