Mule 4:将 json 映射到 xml payload dataweave 2.0

Mule 4: map json to xml payload dataweave 2.0

我在 Mule 中有一个 json 负载,我正试图将其转换为 xml。 “entity_id”中的任何值都应该是我输出中的“payment_id”。此外,键“selected_payment_option”的任何值在我的输出中都应该是“方法”。

请在此处查看我的示例输入:

{
    "items": [
           {
             "payment": {
               "entity_id": 1485222,
               "method": "m2_kp"
              },
              "extension_attributes": {
                "payment_addition_info":[
                    {
                        "key": "m1_code",
                        "value": "over_time"
                    },
                    {
                        "key": "order_id",
                        "value": "4f86-2cce-4870-ad05-089a333"
                    },
                    {
                        "key": "selected_payment_option",
                        "value": "slice_by_card"
                    }
                ]
             }
          }
   ]
}

我想要的结果是

<root>
 <payment>
 <payment_id>1485222</payment_id>
 <method>slice_by_card</method>
 </payment>
</root>

如有任何帮助,我们将不胜感激。谢谢!

  1. 已使用 Map,因为 items 是一个数组,因此项目中可以有多个实体。
  2. 如果密钥不匹配,则使用 default -> "" selected_payment_option

DW

%dw 2.0
output application/xml
---
root:payment:payload.items map {
     payment_id: $.payment.entity_id,
     method: (flatten($..payment_addition_info) filter ($.key=="selected_payment_option"))[0].value default ""
}