json_query
查询 JSON 对象中由 json_path
表达式定位的元素的值,并返回一个 JSON 值。
语法
json_query(json_object_expr, json_path)
参数
-
json_object_expr
:表示 JSON 对象的表达式。该对象可以是 JSON 列,也可以是由 JSON 构造函数(例如 PARSE_JSON)生成的 JSON 对象。 -
json_path
:表示 JSON 对象中元素路径的表达式。此参数的值是一个字符串。有关 StarRocks 支持的 JSON 路径语法的信息,请参阅 JSON 函数和运算符概述。
返回值
返回 JSON 值。
如果该元素不存在,则 json_query 函数返回
NULL
的 SQL 值。
示例
示例 1:查询指定 JSON 对象中由 '$.a.b'
表达式定位的元素的值。在此示例中,json_query 函数返回 1
的 JSON 值。
mysql> SELECT json_query(PARSE_JSON('{"a": {"b": 1}}'), '$.a.b') ;
-> 1
示例 2:查询指定 JSON 对象中由 '$.a.c'
表达式定位的元素的值。在此示例中,该元素不存在。因此,json_query 函数返回 NULL
的 SQL 值。
mysql> SELECT json_query(PARSE_JSON('{"a": {"b": 1}}'), '$.a.c') ;
-> NULL
示例 3:查询指定 JSON 对象中由 '$.a[2]'
表达式定位的元素的值。在此示例中,JSON 对象(一个名为 a 的数组)在索引 2 处包含一个元素,该元素的值为 3。因此,JSON_QUERY 函数返回 3
的 JSON 值。
mysql> SELECT json_query(PARSE_JSON('{"a": [1,2,3]}'), '$.a[2]') ;
-> 3
示例 4:查询指定 JSON 对象中由 '$.a[3]'
表达式定位的元素。在此示例中,JSON 对象(一个名为 a 的数组)在索引 3 处不包含元素。因此,json_query 函数返回 NULL
的 SQL 值。
mysql> SELECT json_query(PARSE_JSON('{"a": [1,2,3]}'), '$.a[3]') ;
-> NULL