Skip to content

JSON_KEYS

功能描述

从JSON对象的顶极值中返回对象键的JSON数组。

语法格式

JSON_KEYS( json_doc[, path] )

参数说明

  • json_doc:JSON目标文档,JSON类型或JSON String类型。

  • path:路径表达式,字符类型。

说明:

  • 如果任何参数为NULL则返回NULL。
  • 从左到有计算新值,产生的新值用于后续计算。
  • 如果所选对象为空则返回空数组。
  • 若路径为不存在则返回NULL。
  • json_doc不为有效JSON文本或path不为有效路径表达式 或 路径表达式中包含 * 或 ** 通配符,都将抛出错误。

函数返回类型

JSON数值类型

示例

sql
SQL> SELECT TO_CHAR(JSON_KEYS('{"a": 1, "b": 2}', '$'));

EXPR1 | 
------------------------------------------------------------------------------
["a", "b"]|

-- 返回一个 JSON 对象的所有顶层成员组成的数组
SQL> SELECT TO_CHAR(JSON_KEYS('{"x": 1, "y": 2, "z": 3}'));

EXPR1 | 
------------------------------------------------------------------------------
["x", "y", "z"]|

-- 返回有路径表达式匹配的 JSON 对象的键
SQL> SELECT TO_CHAR(JSON_KEYS('[0, {"x": 1, "y": 2, "z": 3}]', '$[1]'));

EXPR1 | 
------------------------------------------------------------------------------
["x", "y", "z"]|

-- 如果匹配的 JSON 文档不是 JSON 对象,JSON_KEYS() 返回 NULL
SQL> SELECT TO_CHAR(JSON_KEYS('1')),TO_CHAR(JSON_KEYS('true')),TO_CHAR(JSON_KEYS('"hello"')),TO_CHAR(JSON_KEYS('[1, 2]'));

EXPR1 | EXPR2 | EXPR3 | EXPR4 | 
------------------------------------------------------------------------------
<NULL>| <NULL>| <NULL>| <NULL>|