JSON_DEPTH() - Calculating Depth of JSON Value

Q

How to calculate the depth of a JSON (JavaScript Object Notation) value using the JSON_DEPTH() function?

✍: FYIcenter.com

A

JSON_DEPTH(json) is a MySQL built-in function that calculates the depth of a JSON (JavaScript Object Notation) value using the following rules:

  • The depth of a JSON scalar is 1.
  • The depth of an empty JSON array or object is 1.
  • The depth of a non-empty JSON array or object is the highest depth of its members plus 1.

For example:

SELECT JSON_DEPTH('{}'), JSON_DEPTH('[]'), JSON_DEPTH('true');
  -- +------------------+------------------+--------------------+
  -- | JSON_DEPTH('{}') | JSON_DEPTH('[]') | JSON_DEPTH('true') |
  -- +------------------+------------------+--------------------+
  -- |                1 |                1 |                  1 |
  -- +------------------+------------------+--------------------+

SELECT JSON_DEPTH('[10, 20]'), JSON_DEPTH('[[], {}]');
  -- +------------------------+------------------------+
  -- | JSON_DEPTH('[10, 20]') | JSON_DEPTH('[[], {}]') |
  -- +------------------------+------------------------+
  -- |                      2 |                      2 |
  -- +------------------------+------------------------+

SELECT JSON_DEPTH('[10, {"a": 20}]'), JSON_DEPTH('[10, {"a": [10]}]');
  -- +-------------------------------+---------------------------------+
  -- | JSON_DEPTH('[10, {"a": 20}]') | JSON_DEPTH('[10, {"a": [10]}]') |
  -- +-------------------------------+---------------------------------+
  -- |                             3 |                               4 |
  -- +-------------------------------+---------------------------------+

Reference information of the JSON_DEPTH() function:

JSON_DEPTH(json): int
  Calculates the depth of a JSON (JavaScript Object Notation) value,
  which is the length of the path that reaches its deepest child member.

Arguments, return value and availability:
  json: Required. The JSON value to be measured.
  int: Return value. The depth of the JSON value.
  Available since MySQL 5.7.

 

JSON_EXTRACT() - Exacting Members from JSON

JSON_CONTAINS_PATH() - Finding Path in JSON

MySQL Functions on JSON Values

⇑⇑ MySQL Function References

2023-12-12, 255🔥, 0💬