Перейти к содержимому
Последнее обновление

JSON_LENGTH

Описание​

Функция JSON_LENGTH возвращает длину или количество элементов в заданном документе JSON. Если документ JSON представляет собой массив, функция возвращает количество элементов массива; если документ JSON представляет собой объект, она возвращает количество пар «ключ-значение» в объекте. Если документ JSON некорректен, функция возвращает NULL.

Синтаксис​

JSON_LENGTH(<json_object> [, <path>])

Параметры​

Обязательные параметры​

  • <json_object>: документ типа JSON, длину которого требуется вернуть.

Необязательные параметры​

  • <path>: параметр строкового типа, позволяющий получить длину конкретного объекта в документе.

Примечания​

Эта функция вычисляет длину документа JSON по следующим правилам:

  • Длина скалярного значения равна 1. Например: '1', '"x"', 'true', 'false', 'null' имеют длину 1.
  • Длина массива равна количеству его элементов. Например: '[1, 2]' имеет длину 2.
  • Длина объекта равна количеству его членов. Например: '{"x": 1, "y": [1, 2, 3]}' имеет длину 2.

Возвращаемое значение​

  • Для массивов JSON возвращает количество элементов массива.
  • Для объектов JSON возвращает количество пар «ключ-значение» в объекте.
  • Для скалярных типов JSON (таких как строки, числа, логические значения, null и т. д.) возвращает 1.
  • Для некорректных строк JSON возвращает NULL.

Примеры​

  1. Пример 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 |
    +-----------------------------------+
  2. Длина значений скалярных типов
    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 |
    +----------------------------+
  3. Указание пути
    SELECT json_length('{"x": 1, "y": [1, 2]}', '$.y');
    +---------------------------------------------+
    | json_length('{"x": 1, "y": [1, 2]}', '$.y') |
    +---------------------------------------------+
    | 2 |
    +---------------------------------------------+
  4. Параметры NULL
    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 |
    +--------------------------+