JSON_TUPLE 函数
功能描述
JSON_TUPLE 函数用于解析 JSON 字符串中的键值对,并将指定的键对应的值提取出来。该函数接受一个 JSON 字符串作为输入,并根据提供的键列表(c1、c2、...、cN)提取相应的值。如果 JSON 字符串解析失败,函数将返回全列为 NULL 的结果;如果某个键不存在于 JSON 对象中,对应的列将被填充为 NULL。需要注意的是,JSON_TUPLE 函数只能解析 JSON 对象的顶层键。
该函数可以直接使用,或者与
LATERAL VIEW 子句结合使用,以便在更复杂的查询中提取 JSON 数据。
参数说明
(string): 需要解析的str
字符串,该字符串应为一个JSON
对象。JSON
,c1
, ...c2
(string): 需要提取的cN
对象中的键。JSON
返回类型
- 返回一个包含提取值的字符串数组,数量与提供的键列表长度相同。
使用示例
示例 1:基本用法
上述查询尝试提取键
x 和 z 的值。由于 z 键不存在,返回结果中 z 对应的值为空(NULL)。
示例 2:与 LATERAL VIEW 结合使用
在这个例子中,我们首先创建了一个包含
JSON 字符串的表,然后使用 LATERAL VIEW 和 json_tuple 函数提取 a、b 和 c 键的值。由于 c 键不存在,其对应的值为空。
示例 3:嵌套 JSON 对象的处理
JSON_TUPLE 只解析顶层键。如果某个键的值本身是一个 JSON 对象,该值会以字符串形式原样返回,不会进一步展开。
如需提取嵌套字段,可以对返回的字符串再次调用
json_tuple 或使用 get_json_object。
示例 4:JSON 解析失败时的行为
当输入字符串不是合法的 JSON 对象时,所有列均返回
NULL:
联系我们
