json 将字符串拆分为不同的列

wgxvkvu9  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(125)

我有一个JSON:

{
  "test" : "733122351/DirolWhite",
  "report_date": "2023-05-01",
  ... (other properties)
}

字符串
我想把test拆分为id,所有在/之前的都是id,所有在/之后的都是name

{
  "id" : "733122351",
  "name": "/DirolWhite",
  "report_date": "2023-05-01",
  ... (other properties)
}


我如何才能做到这一点?我尝试使用QueryRecord和类似SQL的脚本,但PostgreSQL/Oracle/SQL Server中的示例不起作用。

omtl5h9j

omtl5h9j1#

正如@daggett已经暗示的那样,您可以使用JoltTransformJSON处理器,其中在modify转换中使用 split 函数,例如

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "test": "=split('/',@(1,&))",
      "id": "=(@(1,test[0]))",
      "name": "=concat('/',@(1,test[1]))"
    }
  },
  { // get rid of the attribute "test"
    "operation": "remove",
    "spec": {
      "test": ""
    }
  }
]

字符串
网站http://jolt-demo.appspot.com/上的 * 演示 * 是:
x1c 0d1x的数据
或者你可以使用shifttransformation spec作为另一个选项:

[
  {
    "operation": "shift",
    "spec": {
      "test": {
        "*/*": {
          "$(0,1)": "id", // grab the 1st asterisk replacement
          "$(0,2)": "name" // grab the 2nd asterisk replacement
            // from the wrapper level(0th)
        }
      },
      "*": "&" // replication for the other elements
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "name": "=concat('/',@(1,&))" // prefix the "name"'s value with a slash
    }
  }
]


网站http://jolt-demo.appspot.com/上的 *demo**为:


相关问题