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

问题描述

我需要使用jolt转换来执行以下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","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('\\^',part))","key": "@(1,part[0])","value": "@(1,part[1])"
        }
      }
    }
    },{
    "operation": "remove","spec": {
      "PID3": {
        "*": {
          "part": ""
        }
      }
    }
    }
]