在Mule Dataweave的循环内添加额外的对象

时间:2018-08-16 03:36:38

标签: mule mule-component dataweave

如何在dataweave中的数组内添加其他对象。请找到输入内容和期望的响应。我将以下输入存储在flowVars中

输入:

 {
    "calculate": [{
    "rate": 10.4500,
    "margin": 0.000,
    "amount": 1000
   }]
}

如果输入量大于1000,则在原始对象的基础上再添加一个对象。响应应如下所示

响应:

{
  "calculate": [{
    "actualRate": 10.4500,
    "amount": 1000
},
{
    "actualRate": 10.4500,
    "amount": null
  }]
}

Dataweave :(不确定如何在上面的响应中添加额外的对象)

 %dw 1.0
 %output application/java
 ---
 {
   calculate: flowVars.calculate map {
    actualRate:$.rate,
    amount:$.amount
 }
}

有人可以帮助我吗?预先感谢。

1 个答案:

答案 0 :(得分:0)

我认为这可以满足您的需求:

%dw 1.0
%output application/java
 ---
flowVars.calculate map {
       calculate:[
            { 
              actualRate:$.rate,
              amount:$.amount
             },
             {
                actualRate:$.rate,
                amount : null
             }
           ] when $.amount >= 1000
           otherwise [
                { 
                  actualRate:$.rate,
                  amount:$.amount
                 }
           ]

}