添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

sql- 解析JSON对象

一、GET_JSON_OBJECT :是用来解析JSON对象 [1]

SELECT get_json_object ( json_string, path )

参数 描述
json_string JSON对象变量,TEXT类型。格式为合法JSON格式字符串。
path JSON内层对象访问变量。使用$表示JSON变量标识,通过 . 或[]读取JSON内层对象或数组。
如果您输入的JSON字符串无效,则系统返回NULL。
CREATE extension hive_compatible;
Result:
data =
{"store":{
     "fruit":[{"weight":8,"type":"apple"}, {"weight":9,"type":"pear"}],
   "bicycle":{"price":19.95,"color":"red"}},
 "email":"amy@only_for_json_udf_test.net",
 "owner":"amy"
SELECT get_json_object(data, '$.owner') FROM test;
Result: amy
SELECT get_json_object(data, '$.store.bicycle.price') FROM test;
Result: 19.95
SELECT get_json_object(data, '$.store.fruit[0]') FROM test;
Result: {"weight":8, "type":"apple"

json的分层 [2]

知识点json [3]

二、案例

解析思路:首先去掉列表,然后将对使用列变行,以及列变行json解析将式sencondLevel中的数据解析出来,进而数据进行计算

r1 as
--解析第一层,拆分数组
select hotel_id,
split(regexp_replace(regexp_extract(detail,'^\\[(.+)\\]$',1),'\\}]}\\,\\{', '\\}]}\\|\\|\\{'),'\\|\\|') as L1
from lastData
r2 as
--解析第一层,获取字段
select hotel_id,