Jolt 将子数组中的对象移动到父数组
Jolt Move Objects in Sub Array to Parent Array
我的 Jolt 变换中有一个由 JSON 个对象组成的数组,但我需要将这些对象移至顶层数组。我已经尝试添加另一个 Shift,但这只是将对象移动到相同的位置,或者将两个子对象的值放入一个值数组中。
输入:
[
{
"parent_id": 1,
"passengers": [
{
"first_name": "John",
"last_name": "Smith"
},
{
"first_name": "Sarah",
"last_name": "Jones"
}
]
},
{
"parent_id": 2,
"passengers": [
{
"first_name": "Jess",
"last_name": "Smith"
},
{
"first_name": "Steve",
"last_name": "Jones"
}
]
}
]
颠簸规格:
[
{
"operation": "shift",
"spec": {
"*": {
"passengers": {
"*": {
"@(2,parent_id)": "[&(3)].[&1].parent_id",
"$": "[&(3)].[&1].cid",
"first_name": "[&(3)].[&1].first_name",
"last_name": "[&(3)].[&1].last_name"
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"*": {
"pcid": "=concat(@(1,parent_id),'#',@(1,cid))"
}
}
}
}
]
当前输出:
[ [ {
"parent_id" : 1,
"cid" : "0",
"first_name" : "John",
"last_name" : "Smith",
"pcid" : "1#0"
}, {
"parent_id" : 1,
"cid" : "1",
"first_name" : "Sarah",
"last_name" : "Jones",
"pcid" : "1#1"
} ], [ {
"parent_id" : 2,
"cid" : "0",
"first_name" : "Jess",
"last_name" : "Smith",
"pcid" : "2#0"
}, {
"parent_id" : 2,
"cid" : "1",
"first_name" : "Steve",
"last_name" : "Jones",
"pcid" : "2#1"
} ] ]
期望的输出:
[ {
"parent_id" : 1,
"cid" : "0",
"first_name" : "John",
"last_name" : "Smith",
"pcid" : "1#0"
}, {
"parent_id" : 1,
"cid" : "1",
"first_name" : "Sarah",
"last_name" : "Jones",
"pcid" : "1#1"
}, {
"parent_id" : 2,
"cid" : "0",
"first_name" : "Jess",
"last_name" : "Smith",
"pcid" : "2#0"
}, {
"parent_id" : 2,
"cid" : "1",
"first_name" : "Steve",
"last_name" : "Jones",
"pcid" : "2#1"
} ]
将此移位操作添加到您的规范后应该可以解决问题:
{
"operation": "shift",
"spec": {
"*": {
"*": "[]"
}
}
}
(在"modify-overwrite-beta"
操作后添加)
我的 Jolt 变换中有一个由 JSON 个对象组成的数组,但我需要将这些对象移至顶层数组。我已经尝试添加另一个 Shift,但这只是将对象移动到相同的位置,或者将两个子对象的值放入一个值数组中。
输入:
[
{
"parent_id": 1,
"passengers": [
{
"first_name": "John",
"last_name": "Smith"
},
{
"first_name": "Sarah",
"last_name": "Jones"
}
]
},
{
"parent_id": 2,
"passengers": [
{
"first_name": "Jess",
"last_name": "Smith"
},
{
"first_name": "Steve",
"last_name": "Jones"
}
]
}
]
颠簸规格:
[
{
"operation": "shift",
"spec": {
"*": {
"passengers": {
"*": {
"@(2,parent_id)": "[&(3)].[&1].parent_id",
"$": "[&(3)].[&1].cid",
"first_name": "[&(3)].[&1].first_name",
"last_name": "[&(3)].[&1].last_name"
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"*": {
"pcid": "=concat(@(1,parent_id),'#',@(1,cid))"
}
}
}
}
]
当前输出:
[ [ {
"parent_id" : 1,
"cid" : "0",
"first_name" : "John",
"last_name" : "Smith",
"pcid" : "1#0"
}, {
"parent_id" : 1,
"cid" : "1",
"first_name" : "Sarah",
"last_name" : "Jones",
"pcid" : "1#1"
} ], [ {
"parent_id" : 2,
"cid" : "0",
"first_name" : "Jess",
"last_name" : "Smith",
"pcid" : "2#0"
}, {
"parent_id" : 2,
"cid" : "1",
"first_name" : "Steve",
"last_name" : "Jones",
"pcid" : "2#1"
} ] ]
期望的输出:
[ {
"parent_id" : 1,
"cid" : "0",
"first_name" : "John",
"last_name" : "Smith",
"pcid" : "1#0"
}, {
"parent_id" : 1,
"cid" : "1",
"first_name" : "Sarah",
"last_name" : "Jones",
"pcid" : "1#1"
}, {
"parent_id" : 2,
"cid" : "0",
"first_name" : "Jess",
"last_name" : "Smith",
"pcid" : "2#0"
}, {
"parent_id" : 2,
"cid" : "1",
"first_name" : "Steve",
"last_name" : "Jones",
"pcid" : "2#1"
} ]
将此移位操作添加到您的规范后应该可以解决问题:
{
"operation": "shift",
"spec": {
"*": {
"*": "[]"
}
}
}
(在"modify-overwrite-beta"
操作后添加)