如何使用嵌套 "map"
How to use nested "map"
我想根据一些嵌套属性映射一个 json,但我似乎犯了一个愚蠢的错误。
我的输入:
[
{
"productNo": "00011111",
"items": [
{
"color": "000000000006000060",
},
{
"color": "000000000006000061",
}
]
},
{
"productNo": "00022222",
"items": [
{
"color": "000000000006000060"
},
{
"color": "000000000006000061"
}
]
}
]
我的改造:
%dw 2.2
output application/json
---
payload map ( prod , indexOfProd ) -> {
(prod.items map (prodItem, indexOfProdItem) -> {
PNR: prod.productNo,
Color: color.quantity
})
}
我的结果:
[
{
"PNR": 00011111,
"Color": "000000000006000060",
"PNR": 00011111,
"Color": "000000000006000061"
},
{
"PNR": 00022222,
"Color": "000000000006000060",
"PNR": 00022222,
"Color": "000000000006000061"
}
]
我的预期结果/我想要得到的:
[
{
"PNR": 00011111,
"Color": "000000000006000060"
},
{
"PNR": 00011111,
"Color": "000000000006000061"
},
{
"PNR": 00022222,
"Color": "000000000006000060"
},
{
"PNR": 00022222,
"Color": "000000000006000061"
}
]
任何提示为什么它不根据颜色变化分离结果?
您可以使用以下数据编织表达式:
%dw 2.0
output application/json
---
flatten(payload map (item, index) -> item.items map (subItem, subIndex) -> {
"PNR": item.productNo,
"Color": subItem.color
})
使用您现有解决方案 Martin 的另一种变体。
%dw 2.0
output application/json
---
flatten (payload map ( prod , indexOfProd ) -> {
temp: (prod.items map (prodItem, indexOfProdItem) -> {
PNR: prod.productNo,
Color: prodItem.color
})
}.temp)
我想根据一些嵌套属性映射一个 json,但我似乎犯了一个愚蠢的错误。
我的输入:
[
{
"productNo": "00011111",
"items": [
{
"color": "000000000006000060",
},
{
"color": "000000000006000061",
}
]
},
{
"productNo": "00022222",
"items": [
{
"color": "000000000006000060"
},
{
"color": "000000000006000061"
}
]
}
]
我的改造:
%dw 2.2
output application/json
---
payload map ( prod , indexOfProd ) -> {
(prod.items map (prodItem, indexOfProdItem) -> {
PNR: prod.productNo,
Color: color.quantity
})
}
我的结果:
[
{
"PNR": 00011111,
"Color": "000000000006000060",
"PNR": 00011111,
"Color": "000000000006000061"
},
{
"PNR": 00022222,
"Color": "000000000006000060",
"PNR": 00022222,
"Color": "000000000006000061"
}
]
我的预期结果/我想要得到的:
[
{
"PNR": 00011111,
"Color": "000000000006000060"
},
{
"PNR": 00011111,
"Color": "000000000006000061"
},
{
"PNR": 00022222,
"Color": "000000000006000060"
},
{
"PNR": 00022222,
"Color": "000000000006000061"
}
]
任何提示为什么它不根据颜色变化分离结果?
您可以使用以下数据编织表达式:
%dw 2.0
output application/json
---
flatten(payload map (item, index) -> item.items map (subItem, subIndex) -> {
"PNR": item.productNo,
"Color": subItem.color
})
使用您现有解决方案 Martin 的另一种变体。
%dw 2.0
output application/json
---
flatten (payload map ( prod , indexOfProd ) -> {
temp: (prod.items map (prodItem, indexOfProdItem) -> {
PNR: prod.productNo,
Color: prodItem.color
})
}.temp)