如何在DW中将对象转换为具有特殊规则的对象数组?

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

我需要变换一个看起来像这样的对象:

    {
    myKey: 'abc',
    att1:'val1',
    att2:'val2',
    ,,,
    attN: 'valN' 
    }

[
 {myKey: 'abc', att1:'val1'},
 {myKey: 'abc', att2:'val2'},
...
 {myKey: 'abc', attN:'valN'}
]

换句话说,我需要将属性“myKey”与对象的所有其他属性形成一对,并将结果呈现为数组。

其他属性的名称不固定,可以是除“myKey”之外的任何字符串。

mule mule4
1个回答
0
投票

您可以使用 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"
  }
]
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.