话不多说,上需求,根据数据库中接口情况的表做一个前端展示页和一个润乾报表,可以处理接口状态。可视化的处理接口情况。需求不难,只是对数据的展示和更新。当我看到这个表的时候,我就emo了。
表字段不多,但是接口上的请求参数,他全怼到一个列里进行存储。我报表和前端列表怎么也展示不完这么多的啊,而且相当的吃藕!老大给的时候就说了,自由发挥,做出来要好看。
这是一个列的数据,这么的长,还是json格式的,还是json里面套json
那么,MySQL中有没有这种函数可以处理呢?
JSON_EXTRACT(字段名,json中字段名1,json中字段名2,...) 函数就可以解决;(json中字段名,即为key,通过json的key,取value的值)
SELECT
JSON_EXTRACT( 字段, '$.json格式的字段名' ) as 别名 from 表
得到:
由于这个表中的json串太长了,我就把列中的几个json串合在一列进行展示;
select JSON_EXTRACT( 字段名, '$.json格式字段1', '$.json格式字段2', '$.json格式字段3' ) as 别名
from 表
得到:
就是这样展示了,是不是还是不好看。有“”,这时候,我们可以用
JSON_UNQUOTE(字段) 转换为字符串,
SELECT
JSON_UNQUOTE(JSON_EXTRACT( 字段, '$.json格式的字段' ) ) AS 别名 FROM 表
当然这还没有结束,上面几个字段合一起展示的时候,外层会用[ ] 框住,很吃藕;于是我就用replace给替换了
SELECT
REPLACE ( REPLACE ( JSON_UNQUOTE( JSON_EXTRACT( 字段, '$.json格式中字段名1', '$.json格式中字段名2', '$.json格式中字段名3' )), '[', '' ), ']', '' ) AS 别名 FROM 表
得到:
基本上,这样就满足了需求;然后页面的话也不会很丑。给大佬们看一下,