日常工作中会经常遇到JSON串解析的情况,不同的场景会用不同的引擎,目前核心是hive和presto,记录一下JSON解析的日常使用

✅hive引擎:

通用格式:get_json_object(字段名.'$.一级字段.二级字段')

如果有数组,需要加索引,一级字段[0]。数组一般是[]的格式

--举例:get_json_object(data_json,'$.customer[1].contract')

如果有{/”a/”:10]类型的格式,需要解析两次

--举例如:get_json_object(get_json_object(message,'$.extInfo').'$.platformLimit')

 

✅presto引擎:

通用格式:json_extract_scalar(字段名.'$.一级字段.二级字段')

如果有数组,需要加索引,一级字段[0]

--例如:jsop_exteact_scalar(message,'$.contracts[1].contract_tem')

如果有{/"a/":200)类型的格式,需要解析两次

-举例json_extract_scalar(json extract_scalar(nessage,'$.extInfo').'$platformtimit'

 

平时遇到的也就这三种情况了,正常JSON串,有数组的,有嵌套的。

更多推荐