使用 JOLT 将键向下移动到 NIFI 中的数组中

Moving a key down into a array in NIFI using JOLT

这是我的第一个 post。我需要在 NIFI 中使用 JOLT 转换 JSON。 为了进一步处理它,我需要将每个数组的键移动(或复制)到数组本身。

JSON 看起来像这样(简化后,数组中的元素数量是可变的)

{
  "status": {
    "123": {
      "key1": "value1",
      "key2": "value2",
      "key3": "value3",
      "key4": "value4",
      "key5": "value5",
      "key6": "value6",
      "key7": "value7"
    },
    "345": {
      "key1": "value1",
      "key2": "value2",
      "key3": "value3",
      "key4": "value4",
      "key5": "value5",
      "key6": "value6",
      "key7": "value7"
    }
  }
}

我需要让每个数组的键成为它的一个成员,所以我想要的输出是

{
  "status": {
    "123": {
      "id"  : "123"
      "key1": "value1",
      "key2": "value2",
      "key3": "value3",
      "key4": "value4",
      "key5": "value5",
      "key6": "value6",
      "key7": "value7"
    },
    "345": {
      "id"  : "345",
      "key1": "value1",
      "key2": "value2",
      "key3": "value3",
      "key4": "value4",
      "key5": "value5",
      "key6": "value6",
      "key7": "value7"
    }
  }
}

但到目前为止,我无法解决这个问题。我发现的所有示例都是将父值移动到数组中,而不是数组本身的键。

请帮忙

BR

您可以使用 shift 转换,例如

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "$": "&2.&1.id",
          "*": "&2.&1.&"
        }
      }
    }
  }
]

其中$代表上一层的键,&1代表每个对象的键值,&2 用于通过向上两个级别获取文字 status