永洪社区

标题: 如何解析JSON字符串为多列 [打印本页]

作者: kevin2021    时间: 2022-1-10 18:19
标题: 如何解析JSON字符串为多列
因为源系统的原因,数据库的某些字段存储的是JSON字符串。比如:
{"创建人":"张三","创建时间":"2022/1/10","状态":"已完成"}


我现在需要把这列分解成3列:创建人、创建时间、状态。


谢谢解答!!

作者: 永洪Tech-CIDX    时间: 2022-1-10 18:29
您好,需要使用计算列实现,新建三个计算列,每个计算列单独提取信息
作者: kevin2021    时间: 2022-1-10 18:33
永洪Tech-CIDX 发表于 2022-1-10 18:29
您好,需要使用计算列实现,新建三个计算列,每个计算列单独提取信息

每个计算列怎么单独提取信息呢?能打个样吗,谢谢了!
作者: 永洪Tech-CIDX    时间: 2022-1-10 19:00
kevin2021 发表于 2022-1-10 18:33
每个计算列怎么单独提取信息呢?能打个样吗,谢谢了!

demo制作需要时间,做好了会回复哈
作者: 永洪Tech-CIDX    时间: 2022-1-10 19:29
kevin2021 发表于 2022-1-10 18:33
每个计算列怎么单独提取信息呢?能打个样吗,谢谢了!

如果我们要截取出 “张三”,可以使用mid函数,截取字符串:mid(string, start, [length])
返回从索引位置 start 开始的字符串。字符串中第一个字符的位置为 1。如果添加了可选参数 length,则返回的字符串仅包含该数量的字符。
开始位置和截取长度,可以使用 find函数确定位置:
find(find_string, with_string, [start_num] )
返回一个字符串在另一个字符串第一次出现的位置(区分大写,不允许通配符)。
如果未找到 find_string,则返回 0。
find_string查找的字符串。
with_string被查找的字符串。
start_num 可选参数,开始查找的位置,默认为1。
最后的计算列是:mid(col['列',find("创建人",col['列',1)+6,find("创建时间",col['列',1)-find("创建人",col['列',1)-9)
结果:
(, 下载次数: 148)