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

Add Extra object inside loop in Mule 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
 }
}

谁能帮我解决这个问题。提前致谢。

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

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

}