hive 函数 get_json_object 对 array 的支持

定义:
get_json_object(string jsonStr, string path)
参数解析:

  • jsonStr
    待解析的json字符串,非有效json字符串,函数将返回null
  • path
    取值的通配路径

注意
需要注意的是,1.2版本以下(不含) 第一个参数,即jsonStr不支持【最外层】是array [ ],仅可以是object { }

  • 例如
---------------- 下面是低版本,高版本都支持的写法 -------------
get_json_object(json, '$.store') 
get_json_object(json, '$.store.fruit[0]') 
get_json_object(json, '$.store.fruit[0].weight') 

---------------- 下面是只有1.2版本以上,才支持的写法 -------------
get_json_object('[1,2,3]', '$[0]'),
get_json_object('[1,2,3]', '$.[0]'),
get_json_object('[1,2,3]', '$.[1]'),
get_json_object('[1,2,3]', '$[1]'),
get_json_object('[1,2,3]', '$[2]'),
get_json_object('[1,2,3]', '$[*]'),
get_json_object('[1,2,3]', '$'),
get_json_object('[{"k1":"v1"},{"k2":"v2"},{"k3":"v3"}]', '$[2]'),
get_json_object('[{"k1":"v1"},{"k2":"v2"},{"k3":"v3"}]', '$[2].k3'),
get_json_object('[[1,2,3],[4,5,6],[7,8,9]]', '$[1]'),
get_json_object('[[1,2,3],[4,5,6],[7,8,9]]', '$[1][0]'),
get_json_object('[{"k1":[{"k11":[1,2,3]}]}]', '$[0].k1[0].k11[1]');

原因
请github上参看源码UDFJson.java

你可能感兴趣的:(hive 函数 get_json_object 对 array 的支持)