考虑到输入、数据编织和输出,我想知道为什么在"apple“数组元素中看到”香蕉“的引用。例如,在附带的屏幕截图中,我突出了一个部分,我希望看到的是“苹果-1”而不是“香蕉-苹果-1”。我将在这篇文章中附上输入、数据编织和文本格式的输出。
输入:
{
"apple":{
"options":[
{
"id": "1",
"name": "apple-one"
},
{
"id": "2",
"name": "apple-two"
},
{
"id": "3",
"name": "apple-three"
}
]
},
"banana":{
"options":[
{
"id": "4",
"name": "banana-four"
},
{
"id": "5",
"name": "banana-five"
},
{
"id": "6",
"name": "banana-six"
}
]
},
"orange":{
"options":[
{
"id": "7",
"name": "orange-seven"
},
{
"id": "8",
"name": "orange-eight"
},
{
"id": "9",
"name": "orange-nine"
}
]
}
}数据编织:
%dw 2.0
output application/json
---
payload.apple.options map ($ mapObject ((value, key, index) -> {
((key) : "apple-" ++ value) if ((key) as String == "id"),
((key) : value ) if ((key) as String != "id")
}
)
)
++
payload.banana.options map ($ mapObject ((value, key, index) -> {
((key) : "banana-" ++ value) if ((key) as String == "id"),
((key) : value ) if ((key) as String != "id")
}
)
)输出:
[
{
"id": "banana-apple-1",
"name": "apple-one"
},
{
"id": "banana-apple-2",
"name": "apple-two"
},
{
"id": "banana-apple-3",
"name": "apple-three"
},
{
"id": "banana-4",
"name": "banana-four"
},
{
"id": "banana-5",
"name": "banana-five"
},
{
"id": "banana-6",
"name": "banana-six"
}
]发布于 2022-07-18 18:02:10
尝试使用此方法(您缺少了构建的每个映射输出的())
%dw 2.0
output application/json
---
(payload.apple.options map ($ mapObject ( {
(($$) : "apple-" ++ $) if (($$) as String == "id"),
(($$) : $ ) if (($$) as String != "id")
}
)))
++
(payload.banana.options map ($ mapObject ( {
(($$) : "banana-" ++ $) if (($$) as String == "id"),
(($$) : $ ) if (($$) as String != "id")
}
)
))https://stackoverflow.com/questions/73026152
复制相似问题