如何解决在汇总值时合并两个 JSON 文件
我得到两个不同的文件,其中包含股票信息,我想在汇总数据时将它们合并到一个文件中,基于“pid”。
有效载荷A
{
"order": [
{
"pid": "a","instock": "2"
},{
"pid": "b",{
"pid": "c","instock": "2"
}
]
}
有效载荷B
{
"order": [
{
"pid": "c",{
"pid": "d","instock": "2"
}
]
}
结果 有效载荷A
{
"order": [
{
"pid": "a","instock": "4"
},"instock": "2"
}
]
}
但我正在努力解决的是边缘情况:
- pid 可能同时存在于两个数据集中,也可能只存在于其中一个数据集中
- payloadB 可能为空
{
"order": []
}
解决方法
您可以尝试以下 DataWeave 表达式:
%dw 2.0
output application/json
import * from dw::core::Arrays
var payloadA = {
"order": [
{
"pid": "a","instock": "2"
},{
"pid": "b",{
"pid": "c","instock": "2"
}
]
}
var payloadB = {
"order": [
{
"pid": "c",{
"pid": "d","instock": "2"
}
]
}
---
"order": outerJoin(payloadA.order,payloadB.order,(itemA) -> itemA.pid,(itemB) -> itemB.pid) map (item,index) -> {
"pid": item.l.pid default item.r.pid,"instock": (item.l.instock default 0) + (item.r.instock default 0)
}
输出:
{
"order": [
{
"pid": "a","instock": 2
},"instock": 4
},"instock": 2
}
]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。