【发布时间】:2021-10-29 16:32:43
【问题描述】:
我正在尝试过滤掉数组中不满足给定数据条件的一些对象。所有包含 "SAL_EMP" 和 "MAJ_EMP" 的 idType 都将被移除并仅返回剩余的对象。但目前没有将“过滤”的对象返回到它自己的父对象中。
如何修改我的规范以达到预期的效果?
输入数据:
[
{
"type": "front-desk",
"employeeIdDetails": [
{
"id": "900",
"idType": "HR_EMP"
},
{
"id": "100",
"idType": "SAL_EMP"
},
{
"id": "100",
"idType": "MAJ_EMP"
},
{
"id": "120",
"idType": "COL_EMP"
}
]
},
{
"type": "backend",
"employeeIdDetails": [
{
"id": "920",
"idType": "HR_EMP"
},
{
"id": "600",
"idType": "SAL_EMP"
},
{
"id": "160",
"idType": "COL_EMP"
},
{
"id": "400",
"idType": "MAJ_EMP"
}
]
},
{
"type": "middle-end",
"employeeIdDetails": [
{
"id": "220",
"idType": "SAL_EMP"
},
{
"id": "630",
"idType": "SAL_EMP"
},
{
"id": "460",
"idType": "SAL_EMP"
}
]
}
]
所需数据:
[
{
"type": "front-desk",
"employeeIdDetails": [
{
"id": "900",
"idType": "HR_EMP"
},
{
"id": "120",
"idType": "COL_EMP"
}
]
},
{
"type": "backend",
"employeeIdDetails": [
{
"id": "920",
"idType": "HR_EMP"
},
{
"id": "160",
"idType": "COL_EMP"
}
]
},
{
"type": "middle-end",
"employeeIdDetails": [
]
}
]
我目前的 Jolt 规格:
[
{
"operation": "shift",
"spec": {
"*": {
"type": {
"*": {
"@(2,employeeIdDetails)": {
"*": {
"idType": {
"HR_EMP": {
"@2": "[]"
},
"COL_EMP": {
"@2": "[]"
}
}
}
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"id": "[&1].id",
"idType": "[&1].idType"
}
}
}
]
返回结果为:
[
{
"id": "900",
"idType": "HR_EMP"
},
{
"id": "120",
"idType": "COL_EMP"
},
{
"id": "920",
"idType": "HR_EMP"
},
{
"id": "160",
"idType": "COL_EMP"
}
]
【问题讨论】: