首页 > 解决方案 > jolt - 将键从嵌套对象复制或移动到顶层

问题描述

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

输入

{
  "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"
      }
    }
  }
]

标签: jolt

解决方案


你是如此接近结果,只需要一个轻微的变化(添加一个&符号),例如

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

在这种情况下,键会不断出现。


推荐阅读