SQL中json解析技巧

比如字段var1,值是'{"a":{"b":{"c":1,"d":2}}}'

大家都知道用get_json_object(var1,'$.a')可以得到'{"b":{"c":1,"d":2}}',如果要继续下挖,不需要get_json_object函数一直套

可以直接按这个写法:get_json_object(var1,'$.a.b'),就可以得到'{"c":1,"d":2}'

同理,get_json_object(var1,'$.a.b.c')可以得到'1'

 

要注意的是:

1、get_json_object返回值类型是string

json进入数仓时,为了保证运维稳定性,会用string数据类型来接。

在获取关键字对应的值时,即使在json里面表现出整数、浮点数的特征,但经过get_json_object解析后依然是string类型的数据。

因此在解析json写入模型时需要特别注意用cast函数转换数据类型

2、get_json_object中,参数二里的关键词有大小写要求

按以上的例子,get_json_object(var1,'$.A')不会得到'{"b":{"c":1,"d":2}}',而是NULL,要特别注意

 

关于json解析,可以在JSON 在线解析 | 菜鸟工具 (runoob.com)格式化json,并且可以按树状收纳操作json,非常方便。

posted @ 2023-06-14 19:39  soccerchen  阅读(1600)  评论(0)    收藏  举报