跳到主要内容

JSON_DEPTH

描述

返回 JSON 文档的最大深度。

语法

JSON_DEPTH(json_doc)

说明

json_doc 参数用于指定 JSON 文档。如果参数为 NULL,则返回 NULL

如果参数不是有效的 JSON 文档,则会发生错误。

空数组、空对象或标量值的深度为 1。仅包含深度为 1 的元素的非空数组深度为 2,仅包含深度为 1 的成员值的非空对象的深度为 2。否则,JSON 文档的深度大于 2。

示例

SELECT JSON_DEPTH('{}'), JSON_DEPTH('[]'), JSON_DEPTH('true');
+------------------+------------------+--------------------+
| JSON_DEPTH('{}') | JSON_DEPTH('[]') | JSON_DEPTH('true') |
+------------------+------------------+--------------------+
| 1 | 1 | 1 |
+------------------+------------------+--------------------+
1 row in set (0.001 sec)

SELECT JSON_DEPTH('[101, 202]'), JSON_DEPTH('[[], {}]');
+--------------------------+------------------------+
| JSON_DEPTH('[101, 202]') | JSON_DEPTH('[[], {}]') |
+--------------------------+------------------------+
| 2 | 2 |
+--------------------------+------------------------+
1 row in set (0.001 sec)

SELECT JSON_DEPTH('[101, {"a": 202}]');
+---------------------------------+
| JSON_DEPTH('[101, {"a": 202}]') |
+---------------------------------+
| 3 |
+---------------------------------+
1 row in set (0.001 sec)

SELECT JSON_DEPTH('{"a":101, "v":"aaa"}');
+------------------------------------+
| JSON_DEPTH('{"a":101, "v":"aaa"}') |
+------------------------------------+
| 2 |
+------------------------------------+
1 row in set (0.001 sec)