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"操作后添加)