繁体   English   中英

在Mule / Dataweave中,当键和值都是数字时,如何将HashMap转换为数组

[英]In Mule/Dataweave how do I transform a HashMap into a Array when both key & value are numbers

在Mule / Dataweave中,如何将HashMap转换/转换为数组。 我有一个HashMap,其键和值是动态数字。

例:

{"3.2" : 1, "22" : 8, "2.0" : 1}

我想将它转换为这种结构:

[
  {
    "name": "app-a",
    "value1": 3.2,
    "value2": 1
  },
  {
    "name": "app-a",
    "value1": 22,
    "value2": 8
  },
  {
    "name": "app-a",
    "value1": 2,
    "value2": 1
  }
]

解决方案(感谢@Sulthony H)

%dw 1.0
%output application/json
---
payload pluck $$ map {
value1: ($ as :string) as :number,
value2: payload[$]
}

为了将HashMap转换为数组,我将执行以下步骤:

  1. 迭代通过其重点拔毛操作者HashMap中在DataWeave: payload pluck $$ map {}
  2. 转换为数字value1: ($ as :string) as :number
  3. 根据该获取值: value2: payload[$]

另一种解决方案:

%dw 1.0
%output application/json
---
payload map {
    ($ mapObject {
        name: "app-a",
        value1: $$ as :string,
        value2: $
    })
}

1 - 使用map运算符迭代元素列表。 有效载荷图

2 - 在数组$ mapObject的每个元素上使用mapObject。 对于mapObject,$$引用键名,$引用该值

3 - 使用value1:$$打印出值:string,value2:$

更简单......

payload pluck (
    {
        value1:$$,
        value2:$
    }
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM