jolt - 将键从嵌套对象复制或移动到顶层

jolt - copy or move a key from nested object to the top level

我正在寻找一种将键从嵌套对象复制或移动到顶层的方法

输入:

{
  "id": "123",
  "name": "foo",
  "details": {
    "orderNumber": "456789",
    "addr": "N st 124",
    "date": "2021-01-01"
  }
}

期望输出:

{
  "id": "123",
  "name": "foo",
  "orderNumber": "456789",
  "details": {
    "orderNumber": "456789",
    "addr": "N st 124",
    "date": "2021-01-01"
  }
}

或理想情况下

{
  "id": "123",
  "name": "foo",
  "orderNumber": "456789",
  "details": {
    "addr": "N st 124",
    "date": "2021-01-01"
  }
}

我能得到的最接近的是低于转换,但它将对象转换为值数组

[
  {
    "operation": "shift",
    "spec": {
      "id": "id",
      "name": "name",
      "details": {
        "orderNumber": "orderNumber",
        "*": "details"
      }
    }
  }
]

您非常接近结果,只需稍作更改(添加一个符号),例如

[
  {
    "operation": "shift",
    "spec": {
      "id": "id",
      "name": "name",
      "details": {
        "orderNumber": "orderNumber",
        "*": "&1.&"
      }
    }
  }
]

在这种情况下,密钥不断出现。