【问题标题】:loop inside transform in mule在骡子中的变换内循环
【发布时间】:2017-07-27 11:56:11
【问题描述】:

我是 mule 新手,我必须将 json 转换为 xml。这是转换输出代码

%dw 1.0
%input payload application/json
%output application/xml
---
{( 
items:
{


    Id:payload.abc.productid,
    ProductPrice:payload.abc.price,
    Name:payload.abc.productname

}

)}

这是我正在测试的架构

{
    "abc":
    {
    "productid":"4",
    "productname":"Shampoo",
    "price":["1000","2000","3000"]
    }   

    }

如果我只发送数组 price 中的一项,它会生成正确的 xml,但如果我发送多个元素,它会给我这个错误

无法将 :array 强制转换为 :object。

我知道我应该在里面循环,但我不知道如何使它成为可能

请指导!

【问题讨论】:

    标签: mule mule-component anypoint-studio


    【解决方案1】:

    您可以使用以下内容:

    {
    items: {
        (payload map ((payload01 , indexOfPayload01) -> {
            item: {
                Id: payload01.productid,
                Name: payload01.productname,
                (payload01.price map ((price , indexOfPrice) -> {
                    price: price
                }))
            }
        }))
    }
    }
    

    我已从传入数据中删除了“abc”,因此格式如下:

    [
    {
    "productid":"4",
    "productname":"Shampoo",
    "price":["1000","2000","3000"]
    },
     {
    "productid":"4",
    "productname":"not shampoo",
    "price":["1000","2000","3000"]
    }
    ]
    

    如果需要有 abc,请告诉我,但我希望这会有所帮助

    【讨论】:

      【解决方案2】:

      您可以使用map 关键字来迭代Dataweave 中的数组。查看文档here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-28
        • 1970-01-01
        • 1970-01-01
        • 2012-08-28
        • 2023-04-05
        • 1970-01-01
        相关资源
        最近更新 更多