在 Mule/Dataweave 中,当键和值都是数字时,如何将 HashMap 转换为数组
In Mule/Dataweave how do I transform a HashMap into a Array when both key & value are numbers
在Mule/Dataweave中我如何convert/transform将一个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 转换为 Array,我将执行以下步骤:
- 在 DataWeave 中使用 pluck 运算符通过其 key 迭代 HashMap:
payload pluck $$ map {}
- 将 key 转换为 number:
value1: ($ as :string) as :number
- 根据 key 获取值:
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: $$ as :string, value2: $
更简单...
payload pluck (
{
value1:$$,
value2:$
}
)
在Mule/Dataweave中我如何convert/transform将一个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 转换为 Array,我将执行以下步骤:
- 在 DataWeave 中使用 pluck 运算符通过其 key 迭代 HashMap:
payload pluck $$ map {}
- 将 key 转换为 number:
value1: ($ as :string) as :number
- 根据 key 获取值:
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: $$ as :string, value2: $
更简单...
payload pluck (
{
value1:$$,
value2:$
}
)