Mule Dataweave 使用通配符访问数据

Mule Dataweave accesing data with wildcard

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

我的有效负载为 Entry_1_m1、Entry_2_m1、Entry_3_m1 条目将是动态的,可能还有其他条目,如 Entry_1_m2、Entry_2_m2、Entry_3_m2。 因此,无论最后一个数字是多少,我都应该能够获得值,即我应该获得 (Entry_1_m*) 的值。在数据编织中可能吗?

%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
            }
        }
    }
}

使用 pluck 运算符获取键列表,这将帮助您映射以 Entry_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[$]
            })}
        }
    }
}

希望对您有所帮助。