如何解决如何在dataweave中转换子项
我有以下输入
{
"error1": [
{
"store": "1201","DocumentNumber": "FF15974433790786634518"
},{
"store": "1201","DocumentNumber": "FF15974433790786634519"
},"DocumentNumber": "FF15974433790786634520"
},{
"store": "1202","DocumentNumber": "FF15974433790786634520"
}
],"error2": [
{
"store": "1201","DocumentNumber": "FF15974433790786634518"
}],error3:[]
}
我想导出以下结果
{
"error1": [{
"store": "1201","DocumentNumber": ["FF15974433790786634518","FF15974433790786634519","FF15974433790786634520"]
},{
"store": "1202","DocumentNumber": ["FF15974433790786634520"]
}
],"error2": [{
"store": "1201","DocumentNumber": ["FF15974433790786634518"]
}]
}
解决方法
试试这个:
输入:
{
"error1": [
{
"store": "1201","DocumentNumber": "FF15974433790786634518"
},{
"store": "1201","DocumentNumber": "FF15974433790786634519"
},"DocumentNumber": "FF15974433790786634520"
},{
"store": "1202","DocumentNumber": "FF15974433790786634520"
}
],"error2": [
{
"store": "1201","DocumentNumber": "FF15974433790786634518"
}],"error3":[]
}
脚本:
%dw 2.0
output application/json
---
payload filterObject ($ !=[]) mapObject {
($$) : $ groupBy $.store mapObject {
temp:{
store: $.store[0],DocumentNumber: $.DocumentNumber
}} pluck($)
}
输出:
{
"error1": [
{
"store": "1201","DocumentNumber": [
"FF15974433790786634518","FF15974433790786634519","FF15974433790786634520"
]
},"DocumentNumber": [
"FF15974433790786634520"
]
}
],"DocumentNumber": [
"FF15974433790786634518"
]
}
]
}
,
试试下面的脚本
%dw 2.0
output application/json
---
(payload filterObject ($ != [])) mapObject ((value,key,index) -> {
(key): (value groupBy $.store) pluck ((iValue,iKey) -> {
store: (iKey),DocumentNumber: iValue.DocumentNumber
})
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。