所以如果mD 为真,我需要映射一个dN。 但我不确定如何添加条件以进行检查,我得到的最远的是映射所有 dN。
这是有效载荷:
[{
"groupMembers": [
{
"dN": "268",
"mD": true
},
{
"dN": "240",
"mD": false
}
]
},
{
"groupMembers": [
{
"dN": "273",
"mD": true
},
{
"dN": "292",
"mD": false
}
]
}]
我所做的是:
payload map (value,index) -> { LC: value.groupMembers.dN, }
得到这个输出:
[
{
"LC": [
"268",
"240"
]
},
{
"LC": [
"273",
"292"
]
}]
由于“MD”中的真实陈述,我怎样才能做到只有“268”和“273”被映射? 预期的结果应该是这样的:
[
{
"LC": "268"
},
{
"LC": "273"
}
]
下面的脚本会帮助你。
%dw 2.0
output application/json
---
LC : (payload.groupMembers flatMap ($ filter($.mD == true))) map (
($.dN)
)
一种方法是映射顶级元素然后过滤然后将
groupMembers
中的每个列表映射到仅mD
的值。
%dw 2.0
output application/json
---
payload map {
LC: $.groupMembers
filter ($.mD)
map ($.dN)
}
输出:
[
{
"LC": [
"268"
]
},
{
"LC": [
"273"
]
}
]