Skip to content

JSON_LENGTH

功能描述

JSON对象的长度。

语法格式

JSON_LENGTH( json_doc[, path] )

参数说明

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

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

说明:

  • 如果任何参数为NULL则返回NULL。
  • 标量长度为1。
  • 数组长度为元素数量。
  • 对象长度为对象成员数量。
  • 长度不计算嵌套数组或对象长度。
  • json_doc不为有效JSON文本或path不为有效路径表达式 或 路径表达式中包含 * 或 ** 通配符,都将抛出错误。

函数返回类型

JSON数值类型

示例

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

EXPR1 | 
------------------------------------------------------------------------------
2|

-- 值的长度
SQL> SELECT TO_CHAR(JSON_LENGTH('1')),
    TO_CHAR(JSON_LENGTH('true')),
    TO_CHAR(JSON_LENGTH('false')),
    TO_CHAR(JSON_LENGTH('"abc"'));

EXPR1 | EXPR2 | EXPR3 | EXPR4 | 
------------------------------------------------------------------------------
1| 1| 1| 1|

-- 数组的长度
SQL> SELECT
        TO_CHAR(JSON_LENGTH('[]')),
        TO_CHAR(JSON_LENGTH('[1, 2]')),
        TO_CHAR(JSON_LENGTH('[1, {"x": 2}]'));

EXPR1 | EXPR2 | EXPR3 | 
------------------------------------------------------------------------------
0| 2| 2|

-- 对象的长度
SQL> SELECT
        TO_CHAR(JSON_LENGTH('{"x": 1, "y": 2}')),
        TO_CHAR(JSON_LENGTH('{"x": 1, "y": {"z" : 2}}'));

EXPR1 | EXPR2 | 
------------------------------------------------------------------------------
2| 2|

-- 路径
SQL> SELECT TO_CHAR(JSON_LENGTH('{"x": 1, "y": [1, 2]}', '$.y'));

EXPR1 | 
------------------------------------------------------------------------------
2|