JSON_LENGTH
Descriptionβ
The JSON_LENGTH
function is used to return the length or number of elements in a given JSON document. If the JSON document is an array, it returns the number of elements in the array; if the JSON document is an object, it returns the number of key-value pairs in the object. If the JSON document is invalid, it returns NULL
.
Syntaxβ
JSON_LENGTH(<json_object> [, <path>])
Parametersβ
Required Parametersβ
<json_object>
JSON type, the JSON document whose length is to be returned.
Optional Parametersβ
<path>
String type, used to return the length of a specific object in the document.
Notesβ
This function calculates the length of a JSON document according to the following rules:
- The length of a scalar is 1. For example: '1', '"x"', 'true', 'false', 'null' all have a length of 1.
- The length of an array is the number of array elements. For example: '[1, 2]' has a length of 2.
- The length of an object is the number of object members. For example: '{"x": 1, "y": [1, 2, 3]}' has a length of 2.
Return Valueβ
- For JSON arrays, returns the number of elements in the array.
- For JSON objects, returns the number of key-value pairs in the object.
- For JSON scalar types (such as strings, numbers, booleans, null, etc.), returns 1.
- For invalid JSON strings, returns NULL.
Examplesβ
- Example 1
SELECT json_length('{"k1":"v31","k2":300}');
+--------------------------------------+
| json_length('{"k1":"v31","k2":300}') |
+--------------------------------------+
| 2 |
+--------------------------------------+SELECT json_length('[1, 2, 3, 4, 5, 6]');
+-----------------------------------+
| json_length('[1, 2, 3, 4, 5, 6]') |
+-----------------------------------+
| 6 |
+-----------------------------------+ - Length of scalar types
SELECT json_length('"abc"');
+----------------------+
| json_length('"abc"') |
+----------------------+
| 1 |
+----------------------+SELECT json_length('123');
+--------------------+
| json_length('123') |
+--------------------+
| 1 |
+--------------------+SELECT json_length('{"k": null}');
+----------------------------+
| json_length('{"k": null}') |
+----------------------------+
| 1 |
+----------------------------+ - Specify path
SELECT json_length('{"x": 1, "y": [1, 2]}', '$.y');
+---------------------------------------------+
| json_length('{"x": 1, "y": [1, 2]}', '$.y') |
+---------------------------------------------+
| 2 |
+---------------------------------------------+ - NULL parameters
SELECT json_length('{"x": 1, "y": [1, 2]}', NULL);
+--------------------------------------------+
| json_length('{"x": 1, "y": [1, 2]}', NULL) |
+--------------------------------------------+
| NULL |
+--------------------------------------------+SELECT json_length(NULL, '$.y');
+--------------------------+
| json_length(NULL, '$.y') |
+--------------------------+
| NULL |
+--------------------------+