比如字段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,非常方便。
标签:var1,string,get,object,json,SQL,解析 From: https://www.cnblogs.com/soccerchen/p/17481194.html