JSON_KEYS
功能描述
从JSON对象的顶极值中返回对象键的JSON数组。
语法格式
JSON_KEYS( json_doc[, path] )
参数说明
json_doc
:JSON目标文档,JSON类型或JSON String类型。path
:路径表达式,字符类型。
说明:
- 如果任何参数为NULL则返回NULL。
- 从左到有计算新值,产生的新值用于后续计算。
- 如果所选对象为空则返回空数组。
- 若路径为不存在则返回NULL。
- 以下情况将导致系统抛出错误:
-json_doc
是无效的JSON文档。
- 任何path
是无效的路径表达式。
- 路径表达式中包含*
或**
通配符。
函数返回类型
JSON数值类型。
示例
无路径表达式
返回一个JSON对象的所有顶层成员组成的数组。
sql
SQL> SELECT TO_CHAR(JSON_KEYS('{"x": 1, "y": 2, "z": 3}'));
EXPR1 |
------------------------------------------------------------------------------
["x", "y", "z"]|
有路径表达式
返回有路径表达式匹配的JSON对象的键。
sql
SQL> SELECT TO_CHAR(JSON_KEYS('[0, {"x": 1, "y": 2, "z": 3}]', '$[1]'));
EXPR1 |
------------------------------------------------------------------------------
["x", "y", "z"]|
非JSON对象
如果匹配的JSON文档不是JSON对象,JSON_KEYS()返回NULL。
sql
SQL> SELECT
TO_CHAR(JSON_KEYS('1')),
TO_CHAR(JSON_KEYS('true')),
TO_CHAR(JSON_KEYS('"hello"')),
TO_CHAR(JSON_KEYS('[1, 2]')),
TO_CHAR(JSON_KEYS('[0, {"x": 1, "y": 2, "z": 3}]'));
EXPR1 | EXPR2 | EXPR3 | EXPR4 | EXPR5 |
------------------------------------------------------------------------------
<NULL>| <NULL>| <NULL>| <NULL>| <NULL>|