Mule Dataweave使用通配符访问数据

时间:2018-02-16 05:46:30

标签: mule dataweave

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

我的有效负载为 Entry_1_m1,Entry_2_m1,Entry_3_m1 条目将是动态的,可能还有其他条目为Entry_1_m2,Entry_2_m2,Entry_3_m2。 所以我应该能够获得值而不管最后一个数字是否应该得到(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
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

使用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[$]
            })}
        }
    }
}

希望这有帮助。