JSON 到 JSON 使用 Jolt Spec,将字符串拆分为数组

JSON to JSON using Jolt Spec, split String to array

我需要使用颠簸变换来进行下面的 JSON 变换。

需要将输入 Json 中的“PID3”值拆分为输出 Json

中的键值对数组

输入JSON

{ "PID1": "value1", "PID2": "value2", 
  "PID3": "k1^value1~k2^value2~k3^value3" # It is Dynamic might contain multiple key value pair seperated by ~ 
}

输出JSON

{
  "PID1": "value1",
  "PID2": "value2",
  "PID3": [
  {
  "key":"k1",
  "value":"value1"
  },
  {
  "key":"k2",
  "value":"value2"
  },
  {
  "key":"k3",
  "value":"value3"
  }

-- 基于输入字符串的倍数

  ]
}

这应该可以解决问题:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "PID3": "=split('~', @(1,PID3))"
    }
    },
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "PID3": {
        "*": "PID3.[&].part"
      }
    }
    },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "PID3": {
        "*": {
          "part": "=split('\^', @(1,part))",
          "key": "@(1,part[0])",
          "value": "@(1,part[1])"
        }
      }
    }
    },
  {
    "operation": "remove",
    "spec": {
      "PID3": {
        "*": {
          "part": ""
        }
      }
    }
    }
]