JSON_LENGTH()

简介

返回JSON文档的长度

语法

JSON_LENGTH(json_doc[, path])

说明

1. 如果给出了path参数,那么就返回由路径标识的文档中值的长度。

2. 如果任何参数为NULL或路径参数没有标识文档中的值,则返回NULL。

3. 如果json_doc参数不是有效的JSON文档或path参数不是有效的路径表达式,或path包含通配符*或**,就会发生错误。

4. 文件的长度如下所示:

(1)标量的长度是1。

(2)数组的长度是数组元素的数量。

(3)对象的长度是对象成员的数量。

(4)长度不计算嵌套数组内部或嵌套对象内部的长度。

示例

-- 标量
SELECT JSON_LENGTH('1') FROM DUAL;
JSON_LENGTH(int)      |
----------------------
1                     |
总数目:1

-- 数组
SELECT JSON_LENGTH('[1,2,3]') FROM DUAL;
JSON_LENGTH(int)      |
----------------------
3                     |
总数目:1

SELECT JSON_LENGTH('[1,2,3]','$[1]') FROM DUAL;
JSON_LENGTH(int)      |
----------------------
1                     |
总数目:1

-- 对象
SELECT JSON_LENGTH('{"a":"b","c":"d","e":"f"}') FROM DUAL;
JSON_LENGTH(int)      |
----------------------
3                     |
总数目:1

SELECT JSON_LENGTH('{"a":"b","c":"d","e":"f"}','$.a') FROM DUAL;
JSON_LENGTH(int)      |
----------------------
1                     |
总数目:1

-- 嵌套对象与嵌套数组
SELECT JSON_LENGTH('[1,[1,2,3,4],3]') FROM DUAL;
JSON_LENGTH(int)      |
----------------------
3                     |
总数目:1

SELECT JSON_LENGTH('[1,{"a":"b","c":"d","e":"f"},3]') FROM DUAL;
JSON_LENGTH(int)      |
----------------------
3                     |
总数目:1

SELECT JSON_LENGTH('{"a":"b","c":{"a":"b","c":"d","e":"f"},"e":"f"}') FROM DUAL;
JSON_LENGTH(int)      |
----------------------
3                     |
总数目:1

SELECT JSON_LENGTH('{"a":"b","c":[1,2,3,4,5],"e":"f"}') FROM DUAL;
JSON_LENGTH(int)      |
----------------------
3                     |
总数目:1