我需要变换一个看起来像这样的对象:
{
myKey: 'abc',
att1:'val1',
att2:'val2',
,,,
attN: 'valN'
}
到
[
{myKey: 'abc', att1:'val1'},
{myKey: 'abc', att2:'val2'},
...
{myKey: 'abc', attN:'valN'}
]
换句话说,我需要将属性“myKey”与对象的所有其他属性形成一对,并将结果呈现为数组。
其他属性的名称不固定,可以是除“myKey”之外的任何字符串。
您可以使用 pluck() 函数将对象的键值转换为数组。删除键
myKey
将为您提供 att*
键值列表。映射这个列表你就可以得到预期的结果。
示例:
%dw 2.0
output application/json
var in={
myKey: 'abc',
att1:'val1',
att2:'val2',
att3:'val3'
}
var attributes=(in - "myKey") pluck ((value, key, index) -> {key: key, value: value})
---
attributes map {myKey: in.myKey, ($.key):$.value }
输出
[
{
"myKey": "abc",
"att1": "val1"
},
{
"myKey": "abc",
"att2": "val2"
},
{
"myKey": "abc",
"att3": "val3"
}
]