0

我有这段 Dataweave 代码

list_of_orders: {
    order: payload map ((payload01 , indexOfPayload01) -> {
        order_dtl: 
        "" when payload01[30] == "S" 
        otherwise
        "" when payload01[30] == "C"
        otherwise
        [{
            data: some_data
        }],
        order_hdr: {
            data: some_data     
        }
    })
}

此代码将输出以下数据

"list_of_orders": {
    "order": [
        {
            "order_dtl": [
                {
                    "data": "some_data"
                }
            ],
            "order_hdr": {
                    "data": "some_data"
            }
        }
    ]
}

但它只会在 payload01[30] != "S" or "C" 如果 payload01[30] 等于 "S" 或 "C" 那么它会这样做

"list_of_orders": {
    "order": [
        {
            "order_dtl": "",
            "order_hdr": {
                    "data": "some_data"
            }
        }
    ]
}

我这样做的原因是,如果 order_type 不是“C”或“S”,我被要求仅包含 DETAIL 行。

问题是实际的密钥 - order_dtl - 仍然存在,我根本不想要任何东西。

如何使 KEY 有条件?

任何帮助表示赞赏

谢谢

4

1 回答 1

0

您正在寻找的称为条件元素

list_of_orders: {
    order: payload map ((payload01 , indexOfPayload01) -> {
        (order_dtl: 
        [{
            data: some_data
        }]) when((payload01[30] != "S") and (payload01[30] != "C")),
        order_hdr: {
            data: some_data     
        }
    })
}
于 2019-05-21T02:09:54.493 回答