如何使用dataweave 2.0动态地将字符串列表转换为键值对

问题描述 投票:0回答:1

我有一个下面的输入,其中有键“Actual_Amount”,它是一个字符串列表。我想根据字符串中值的数量将此键转换为多个键。

输入:

[
  {
    "Billing_ID": "Default",
    "Product": "License Fee",
    "Region": "EMEA",
    "Actual_Amount": "0,49902.95,0"
  },
  {
    "Billing_ID": "Default",
    "Product": "License Fee",
    "Region": "APAC",
    "Actual_Amount": "0,0,0,0,0"
  }
]

预期输出:

[
  {
    "Billing_ID": "Default",
    "Product": "License Fee",
    "Region": "EMEA",
    "Actual_Amount_1": "0",
    "Actual_Amount_2": "49902.95",
    "Actual_Amount_3": "0"
  },
  {
    "Billing_ID": "Default",
    "Product": "License Fee",
    "Region": "APAC",
    "Actual_Amount_1": "0",
    "Actual_Amount_2": "0",
    "Actual_Amount_3": "0",
    "Actual_Amount_4": "0",
    "Actual_Amount_5": "0"
  }
]

我尝试将 Actual_Amount 转换为数组并尝试,但无法获得所需的输出。

有人可以帮我吗?

蒂亚

mule dataweave mulesoft mule4
1个回答
0
投票

您可以使用 splitBy 分割逗号分隔的金额,并使用 map

对其进行迭代
%dw 2.0
output application/json
---
payload map{
    ($ - "Actual_Amount"),
    ($.Actual_Amount splitBy "," map(item,index)-> {
        ("Actual_Amount_" ++ (index + 1)): item
    })
}
© www.soinside.com 2019 - 2024. All rights reserved.