JSON解析函数
更新时间:2021-03-26
Doris 目前支持3个 JSON 解析函数:
1.get_json_int
2.get_json_string
3.get_json_double
GET_JSON_INT
Description
get_json_int(VARCHAR json_str, VARCHAR json_path)- 功能:解析并获取 JSON 字符串内指定路径的整型内容。其中第一个参数为json字符串,第二个参数为json内的路径。
json_path必须以$符号作为开头,使用.作为路径分割符。如果路径中包含.,则可以使用双引号包围。 使用[]表示数组下标,从0开始。path的内容不能包含",[,]。 如果json_string格式不对,或json_path格式不对,或无法找到匹配项,则返回 NULL。 - 返回类型:int类型或NULL。
Example
mysql> select get_json_int('{"col1":100, "col2":"string", "col3":1.5}', "$.col1");
+---------------------------------------------------------------------+
| get_json_int('{"col1":100, "col2":"string", "col3":1.5}', '$.col1') |
+---------------------------------------------------------------------+
| 100 |
+---------------------------------------------------------------------+Keywords
GET_JSON_INT, JSONGET_JSON_STRING
Description
get_json_string(VARCHAR json_str, VARCHAR json_path)- 功能:解析并获取 JSON 字符串内指定路径的字符串内容。 其中
json_path必须以$符号作为开头,使用.作为路径分割符。如果路径中包含.,则可以使用双引号包围。 使用[]表示数组下标,从0开始。path的内容不能包含",[,]。 如果json_string格式不对,或json_path格式不对,或无法找到匹配项,则返回 NULL。 - 返回类型:string类型或NULL。
Example
mysql> select get_json_string('{"col1":100, "col2":"string", "col3":1.5}', "$.col2");
+------------------------------------------------------------------------+
| get_json_string('{"col1":100, "col2":"string", "col3":1.5}', '$.col2') |
+------------------------------------------------------------------------+
| string |
+------------------------------------------------------------------------+Keywords
GET_JSON_STRING, JSON
GET_JSON_DOUBLE
Description
get_json_double(VARCHAR json_str, VARCHAR json_path)- 功能:解析并获取 JSON 字符串内指定路径的浮点型内容。其中
json_path必须以$符号作为开头,使用.作为路径分割符。如果路径中包含.,则可以使用双引号包围。 使用[]表示数组下标,从0开始。path的内容不能包含",[,]。 如果json_string格式不对,或json_path格式不对,或无法找到匹配项,则返回 NULL。 - 返回类型:double类型或NULL。
Example
mysql> select get_json_double('{"col1":100, "col2":"string", "col3":1.5}', "$.col3");
+------------------------------------------------------------------------+
| get_json_double('{"col1":100, "col2":"string", "col3":1.5}', '$.col3') |
+------------------------------------------------------------------------+
| 1.5 |
+------------------------------------------------------------------------+
mysql> select get_json_double('{"col1":100, "col2":"string", "col3":1.5}', "$.col5");
+------------------------------------------------------------------------+
| get_json_double('{"col1":100, "col2":"string", "col3":1.5}', '$.col5') |
+------------------------------------------------------------------------+
| NULL |
+------------------------------------------------------------------------+Keywords
GET_JSON_DOUBLE, JSON