使用颠簸变换截断字符串的一部分

truncate a part of string using jolt transform

输入json:

{
  "userid" : "31b25f023c58c969388991a6b9b4030000000000",
  "username_id": "54fca0dd914ae593ef65988b4a3e93cccc590000000000"
}

每个值前面有10个0。字符串的总长度可以变化,但它总是会附加 10 个 0。我想删除它。

因此预期输出:

{
  "userid" : "31b25f023c58c969388991a6b9b403",
  "username_id": "54fca0dd914ae593ef65988b4a3e93cccc59"
} 

因此我正在寻找使用 jolt 变换执行此截断的正确方法。

您可以从 modify 转换开始,其中 substring 函数在确定属性的 10 个减少后应用于每个属性值length 以提取除最后十个字符之外的值,如前所述十个零始终是right-padded,例如

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "userid_len": "=size(@(1,userid))",
      "userid_len_dif": "=intSum(-10,@(1,userid_len))",
      "userid": "=substring(@(1,&),0,@(1,userid_len_dif))",
      "username_id_len": "=size(@(1,username_id))",
      "username_id_len_dif": "=intSum(-10,@(1,username_id_len))",
      "username_id": "=substring(@(1,&),0,@(1,username_id_len_dif))"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "use*id": "&"
    }
  }
]

站点 http://jolt-demo.appspot.com/ 上的 演示