Json 使用 Jolt 进行数组转换

Json array transformation with Jolt

我正在尝试使用 Jolt 将 JSON 数组转换为另一个数组。 它由一个没有键的嵌套 JSON 数组组成。

这是我的输入:

[
  [
    "20190207101456",
    1,
    2,
    3
  ],
  [
    "20190207101456",
    4,
    5,
    6
  ]
]

我想得到以下输出:

[
 {
  "timestamp": "20190207101456",
  "value1": 1,
  "value2" : 2,
  "value3" : 3
 },
 {
  "timestamp": "20190207101456",
  "value1": 4,
  "value2" : 5,
  "value3" : 6
 }
]

我能够使用此规范文件为单个嵌套数组元素添加键:

[
  {
    "operation": "shift",
    "spec": {
      "0": "timestamp",
      "1": "value1",
      "2": "value2",
      "3": "value3"
    }
  }
]

但我不知道如何将其应用于外部 JSON 数组。

像这样应该可以满足您的要求:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "0": "[&1].timestamp",
        "1": "[&1].value1",
        "2": "[&1].value2",
        "3": "[&1].value3"
      }
    }
  }
]

在对默认空数组进行注释后,您可以这样做:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "0": "[&1].timestamp",
        "1": "[&1].value1",
        "2": "[&1].value2",
        "3": "[&1].value3"
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "*": {
        "TRASH": "",
        "value_before_timestamp": "static_value"
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "*": {
        "TRASH": ""
      }
    }
  }
]

TRASH 取自 here

的技巧