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数值类型。

示例

无路径表达式

返回一个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>|