代码之家  ›  专栏  ›  技术社区  ›  star

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

  •  0
  • star  · 技术社区  · 7 年前

    如何在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 回复  |  直到 7 年前
        1
  •  0
  •   Álvaro Pérez Soria    7 年前

    我想这可以满足你的需要:

    %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
                     }
               ]
    
    }
    
    推荐文章