Jolt - 如何将两个数组转换为键值并保留其他单曲属性

Jolt - How to convert two arrays to key value and keep other singles properties

我有一个 JSON,其中包含两个我需要转换为键/值对的数组。数组上的这些键是动态的,可以更改。

为此,我正在尝试创建一个 Jolt 规范以将我的输入数据转换为以下格式。

JSON 输入:

{
  "data": [
    {
      "property1": "AA",
      "property2": "BB",
      "keys": [
        "key1",
        "key2",
        "key3"
      ],
      "values": [
        "value1",
        "value2",
        "value3"
      ]
    },
    {
      "property1": "CC",
      "property2": "DD",
      "keys": [
        "key4",
        "key5"
      ],
      "values": [
        "value4",
        "value5"
      ]
    }
  ]
}

期望的输出:

[
  {
    "property1": "AA",
    "property2": "BB",
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  },
  {
    "property1": "CC",
    "property2": "DD",
    "key4": "value4",
    "key5": "value5"
  }
]

我的规格:

[
  {
    "operation": "shift",
    "spec": {
      "data": {
        "*": {
          "values": {
            "*": {
              "@": "[&3].@(3,keys[&1])"
            }
          }
        }
      }
    }
 }
]

我的规格输出:

[
  {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  },
  {
    "key4": "value4",
    "key5": "value5"
  }
]

但我无法正确地包含所需输出中的简单属性(property1 和 property2)。

提前致谢

[
  {
    "operation": "shift",
    "spec": {
      "data": {
        "*": {
          "property1": "[&1].property1",
          "property2": "[&1].property2",
          "values": {
            "*": {
              "@": "[&3].@(3,keys[&1])"
            }
          }
        }
      }
    }
 }
]

确实,您确实将动态元素极大地分组为键值对,但您只是错过了 property1 和 property2 字段到输出的位置映射。