JSON解析函数
更新时间:2021-08-20
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, JSON
GET_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