用于一个标准的JSON字符串中,按照输入的一组键(key1,key2,...)
抽取各个键指定的字符串。
命令格式
string json_tuple(string <json>, string <key1>, string <key2>,...)
参数说明
json:必填。STRING类型,标准的JSON格式字符串。
key:必填。STRING类型,用于描述在JSON中的
path
,一次可输入多个,不能以美元符号($)开头。MaxCompute支持用.
或['']
这两种字符解析JSON,当JSON的Key本身包含.
时,可以用['']
来替代。
返回值说明
返回STRING类型。
说明
如果JSON为空或者为非法的JSON格式,返回NULL。
如果键Key为空或者不合法(JSON中不存在)返回NULL。
如果JSON合法,键Key也存在,则返回对应字符串。
支持包含中文的JSON数据解析。
支持多层嵌套的JSON数据解析。
支持包含多重嵌套的数组的JSON数据解析。
解析行为和设置了
set odps.sql.udf.getjsonobj.new=true;
后的GET_JSON_OBJECT的行为保持一致。在需要对同一个JSON字符串多次解析的情况下,相比于多次调用GET_JSON_OBJECT,JSON_TUPLE可以一次输入多个Key,且JSON字符串只被解析一次,效率更高。JSON_TUPLE是UDTF,在需要选取其他列时应配合Lateral View使用。
相关函数
JSON_TUPLE函数属于复杂类型函数或字符串函数。