使用Jolt转换将数组值分离为JSON中的多个键

pkln4tw6  于 2023-10-21  发布在  其他
关注(0)|答案(1)|浏览(123)

我有一个这样的JSON输入:
输入:

{
  "data": {
    "data": [
      {
        "indicator": "abc",
        "value": [
          "1",
          "2",
          "3",
          "4",
          "5"
        ]
      },
      {
        "indicator": "def",
        "value": [
          "6",
          "7",
          "8",
          "9",
          "10"
        ]
      }
    ]
  }
}

我想要一个像这样的JSON输出:
输出量:

[
  {
    "indicator": "abc",
    "value1": "1",
    "value2": "2",
    "value3": "3",
    "value4": "4",
    "value5": "5"
  },
  {
    "indicator": "def",
    "value1": "6",
    "value2": "7",
    "value3": "8",
    "value4": "9",
    "value5": "10"
  }
]

有人知道如何编写JOLT转换规范来获得此输出吗?
我试过了,但我不知道如何解决这个问题。
我希望有人能帮我写一篇。非常感谢

y0u0uwnf

y0u0uwnf1#

这一个很接近:

[
  {
    "operation": "shift",
    "spec": {
      "data": {
        "data": {
          "*": {
            "indicator": "[&1].indicator",
            "value": {
              "*": "[&2].value&"
            }
          }
        }
      }
    }
  }
]

但由于数组是从零开始的,因此会得到以下输出:

[
  {
    "indicator": "abc",
    "value0": "1",
    "value1": "2",
    "value2": "3",
    "value3": "4",
    "value4": "5"
  },
  {
    "indicator": "def",
    "value0": "6",
    "value1": "7",
    "value2": "8",
    "value3": "9",
    "value4": "10"
  }
]

如果上述方法不可行,您可以使用键上的数学函数将它们递增1。

相关问题