一种基于sql解析json数组字段并分行展示的方法技术

技术编号:37081547 阅读:13 留言:0更新日期:2023-03-29 19:57
本发明专利技术涉及一种基于sql解析json数组字段并分行展示的方法,包括以下步骤:新建序号表,所述序号表的序号从0开始;采用json_extract函数解析json数组字段,得到字段合集;采用replace函数对所述字段合集进行处理,去除所述字段合集最外层的中括号,并将字段合集中各单个json字符串之间的逗号改为分号,得到json字符串组,各单个json字符串内包含id;计算单个json字符串个数;根据单个json字符串个数将json字符串组通过左关联的方式填入序号表中,得到多行字符串;以行号为依据,去掉id大于和id小于行号+1的单个json字符串,得到分行单个json字符串。本发明专利技术实现了对json数组字段进行解析并且分行展示的功能。解析并且分行展示的功能。解析并且分行展示的功能。

【技术实现步骤摘要】
一种基于sql解析json数组字段并分行展示的方法


[0001]本专利技术涉及数据处理
,特别涉及一种基于sql解析json数组字段并分行展示的方法。

技术介绍

[0002]营销过程中,规则参数通常会以json数组的格式存入数据库中,有时会出现针对json数组字段中的key值进行联表查询以及排序分页的情况,但目前通常都是一整行存入的方式,导致难以单独按照key值查询。
[0003]因此有必要提供一种基于sql解析json数组字段并分行展示的方法,实现对json数组字段进行解析并且分行展示的功能。

技术实现思路

[0004]本专利技术的目的在于提供一种基于sql解析json数组字段并分行展示的方法,实现对json数组字段进行解析并且分行展示的功能。
[0005]为了解决现有技术中存在的问题,本专利技术提供了一种基于sql解析json数组字段并分行展示的方法,包括以下步骤:
[0006]新建序号表,所述序号表的序号从0开始;
[0007]采用json_extract函数解析json数组字段,得到字段合集;
[0008]采用replace函数对所述字段合集进行处理,去除所述字段合集最外层的中括号,并将字段合集中各单个json字符串之间的逗号改为分号,得到json字符串组,各单个json字符串内包含id;
[0009]计算单个json字符串个数;
[0010]根据单个json字符串个数将json字符串组通过左连接的方式填入序号表中,得到多行字符串;
[0011]以行号为依据,去掉id大于和id小于行号+1的单个json字符串,得到分行单个json字符串。
[0012]可选的,在所述基于sql解析json数组字段并分行展示的方法中,各单个json字符串还包含对应的key值。
[0013]可选的,在所述基于sql解析json数组字段并分行展示的方法中,各单个json字符串的id依次为1、2、3
……
n。
[0014]可选的,在所述基于sql解析json数组字段并分行展示的方法中,
[0015]json数组字段为:
[0016]{"rule":[{"id":"1","amt":10},{"id":"2","amt":20},{"id":"3","amt":30}]}
[0017]字段合集为:
[0018][{"id":"1","amt":10},{"id":"2","amt":20},{"id":"3","amt":30}];
[0019]json字符串组为:
[0020]{"id":"1","amt":10};{"id":"2","amt":20};{"id":"3","amt":30}。
[0021]可选的,在所述基于sql解析json数组字段并分行展示的方法中,多行字符串为:
[0022]重复多行所述json字符串组,行数等于最大id值,所述序号表的序号等于id值减1。
[0023]在本专利技术所提供的基于sql解析json数组字段并分行展示的方法中,通过将json数组字段解析拆分,实现了对json数组字段进行解析并且分行展示的功能。
附图说明
[0024]图1为本专利技术实施例提供的解析方法的流程图;
[0025]图2为本专利技术实施例提供的多行字符串的示意图;
[0026]图3a

3b为本专利技术实施例提供的截取字符串的示意图。
具体实施方式
[0027]下面将结合示意图对本专利技术的具体实施方式进行更详细的描述。根据下列描述,本专利技术的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本专利技术实施例的目的。
[0028]在下文中,如果本文所述的方法包括一系列步骤,本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。
[0029]营销过程中,规则参数通常会以json数组的格式存入数据库中,有时会出现针对json数组字段中的key值进行联表查询以及排序分页的情况,但目前通常都是一整行存入的方式,导致难以单独按照key值查询。
[0030]为了解决现有技术中存在的问题,本专利技术提供了一种基于sql解析json数组字段并分行展示的方法,如图1所示,所述方法包括以下步骤:
[0031]新建序号表,所述序号表的序号从0开始;
[0032]采用json_extract函数解析json数组字段,得到字段合集;
[0033]采用replace函数对所述字段合集进行处理,去除所述字段合集最外层的中括号,并将字段合集中各单个json字符串之间的逗号改为分号,得到json字符串组,各单个json字符串内包含id;
[0034]计算单个json字符串个数;
[0035]根据单个json字符串个数将json字符串组通过左连接的方式填入序号表中,得到多行字符串;
[0036]以行号为依据,去掉id大于和id小于行号+1的单个json字符串,得到分行单个json字符串。
[0037]进一步的,各单个json字符串还包含对应的key值。各单个json字符串的id依次为1、2、3
……
n。
[0038]新建序号表的方式为:根据json数组字段中json字符串初始化id,从0开始:
[0039]createTABLEKEY(
[0040]idintnotnullprimarykey
[0041])。
[0042]可选的,在一个实施例中,
[0043]json数组字段为:
[0044]{"rule":[{"id":"1","amt":10},{"id":"2","amt":20},{"id":"3","amt":30}]}
[0045]字段合集为:
[0046][{"id":"1","amt":10},{"id":"2","amt":20},{"id":"3","amt":30}];
[0047]json字符串组为:
[0048]{"id":"1","amt":10};{"id":"2","amt":20};{"id":"3","amt":30}。
[0049]可选的,在所述基于sql解析json数组字段并分行展示的方法中,多行字符串为:重复多行所述json字符串组,行数等于最大id值,所述序号表的序号等于id值减1。
[0050]左连接的方式为:leftjoin序号表onKEY.id<
[0051]length(json)

length(replace(json,



,”))+1,
[0052]length(json)

本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于sql解析json数组字段并分行展示的方法,其特征在于,包括以下步骤:新建序号表,所述序号表的序号从0开始;采用json_extract函数解析json数组字段,得到字段合集;采用replace函数对所述字段合集进行处理,去除所述字段合集最外层的中括号,并将字段合集中各单个json字符串之间的逗号改为分号,得到json字符串组,各单个json字符串内包含id;计算单个json字符串个数;根据单个json字符串个数将json字符串组通过左连接的方式填入序号表中,得到多行字符串;以行号为依据,去掉id大于和id小于行号+1的单个json字符串,得到分行单个json字符串。2.如权利要求1所述的基于sql解析json数组字段并分行展示的方法,其特征在于,各单个json字符串还包含对应的key值。3.如权利要求1所述的基于sql解析json数组字段并分行展示的方法,其特征在于...

【专利技术属性】
技术研发人员:高宇
申请(专利权)人:上海通联金融服务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1