Java 在Mule/Dataweave中,当key和value都是数字时,如何将HashMap转换为数组
在Mule/Dataweave中,如何将HashMap转换成数组。我有一个HashMap,它的键值是动态数字 例如:Java 在Mule/Dataweave中,当key和value都是数字时,如何将HashMap转换为数组,java,mule,mule-studio,anypoint-studio,dataweave,Java,Mule,Mule Studio,Anypoint Studio,Dataweave,在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
{"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转换为数组,我将执行以下步骤: 在DataWeave:payload pullc$$map{}中使用pullc操作符通过其键迭代HashMap 将键转换为number:value1:$as:string作为:number 基于该键获取值: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:$
}
)
令人惊叹的完美的解决方案。我还用实际的编织代码提问。