JOLT JSON 转置多个元素

JOLT JSON transpose multiple elements

我正在尝试使用 JOLT 进行(简单的?)转置:

输入:

[
  {
    "AAA": "10000000000",
    "Value": 12345,
    "BBB": "BBBValue",
    "CCC": "CCCValue",
    "DDD": "DDDValue"
  }
]

输出:

{
  "DDDValue" : 12345,
  "CCC" : "CCCValue",
  "BBB" : "BBBValue"
}

规格:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "AAANewName": "AAA",
        "@Value": "@DDD",
        "CCC": "CCC",
        "BBB": "BBB"
      }
    }
  }
]

现在,当我尝试对输入中的 2 项执行此操作时:

输入:

[
  {
    "AAA": "10000000000",
    "Value": 12345,
    "BBB": "BBBValue",
    "CCC": "CCCValue",
    "DDD": "DDDValue"
  },
  {
    "AAA": "10000000000",
    "Value": 123456,
    "BBB": "BBBValue",
    "CCC": "CCCValue",
    "DDD": "DDDValue"
  }
]

我得到以下输出:

{
  "DDDValue" : [ 12345, 123456 ],
  "CCC" : [ "CCCValue", "CCCValue" ],
  "BBB" : [ "BBBValue", "BBBValue" ]
}

但我不想这样,我希望这些项目“保持独立”。我需要另一个转换吗?或者我可以以某种方式更改第一个以获得所需的输出,如下所示:

[
  {
    "DDDValue": 12345,
    "CCC": "CCCValue",
    "BBB": "BBBValue"
  },
  {
    "DDDValue": 123456,
    "CCC": "CCCValue",
    "BBB": "BBBValue"
  }
]

您可以使用包含替换运算符 (&) 的方括号表示法,例如

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "@Value": "[&].@DDD",
        "CCC": "[&1].&",
        "BBB": "[&1].&"
      }
    }
  }
]