在dataweave 2中创建子数组
Create sub array in dataweave 2
我有一条 json 消息,想要获得以下输出。
输入消息:
[
{
Header:{
id:12,
dept: HR
},
details:[
{
lineid: 1234,
acc : "ABC"
},
{
lineid: 98745,
acc : "cba"
}]
}]
预期输出:
[
{
"id": 12,
"lineid": 1234},
{
"id": 12,
"lineid": 98745
}
]
使用的数据编织:
%dw 2.0
output application/json
---
payload map ( payload01 , indexOfPayload01 ) -> {
((payload01.Header map ( payload02, indexOfPayload02 ) -> {
id: payload01.Header.id,
lineid: payload02.lineid
}
) )
}
我的输出看起来不错,唯一的问题是该值不在子数组下,即
[
{
"id": 12
"lineid": 1234,
"id": 12,
"lineid":98745
}
]
你好我在你的脚本中看到两件事一是内部地图应该是细节而不是Header(我想这是复制粘贴或将其复制到 Whosebug 时的问题简化问题,因为它没有'否则不工作)。另一个问题是 {
与包含在 (
中的表达式一起使用
{
(
(payload01.Header map ( payload02, indexOfPayload02 ) -> {
id: payload01.Header.id,
lineid: payload02.lineid
})
)
}
这种语法扩展了object里面的数组见https://docs.mulesoft.com/mule-runtime/4.1/dataweave-types#dynamic_elements
所以如果你把它改成
payload map ((payload01, indexOfPayload01) ->
payload01.details map (payload02, indexOfPayload02) -> {
id: payload01.Header.id,
lineid: payload02.lineid
})
产生
[
[
{
"id": 12,
"lineid": 1234
},
{
"id": 12,
"lineid": 98745
}
]
]
我有一条 json 消息,想要获得以下输出。 输入消息:
[
{
Header:{
id:12,
dept: HR
},
details:[
{
lineid: 1234,
acc : "ABC"
},
{
lineid: 98745,
acc : "cba"
}]
}]
预期输出:
[
{
"id": 12,
"lineid": 1234},
{
"id": 12,
"lineid": 98745
}
]
使用的数据编织:
%dw 2.0
output application/json
---
payload map ( payload01 , indexOfPayload01 ) -> {
((payload01.Header map ( payload02, indexOfPayload02 ) -> {
id: payload01.Header.id,
lineid: payload02.lineid
}
) )
}
我的输出看起来不错,唯一的问题是该值不在子数组下,即
[ { "id": 12 "lineid": 1234, "id": 12, "lineid":98745 } ]
你好我在你的脚本中看到两件事一是内部地图应该是细节而不是Header(我想这是复制粘贴或将其复制到 Whosebug 时的问题简化问题,因为它没有'否则不工作)。另一个问题是 {
与包含在 (
{
(
(payload01.Header map ( payload02, indexOfPayload02 ) -> {
id: payload01.Header.id,
lineid: payload02.lineid
})
)
}
这种语法扩展了object里面的数组见https://docs.mulesoft.com/mule-runtime/4.1/dataweave-types#dynamic_elements
所以如果你把它改成
payload map ((payload01, indexOfPayload01) ->
payload01.details map (payload02, indexOfPayload02) -> {
id: payload01.Header.id,
lineid: payload02.lineid
})
产生
[
[
{
"id": 12,
"lineid": 1234
},
{
"id": 12,
"lineid": 98745
}
]
]