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

JSON_KEYS

Описание​

Возвращает все ключи объекта JSON в виде массива. По умолчанию возвращает ключи корневого объекта, но с помощью параметров можно также указать путь к объекту, ключи которого нужно вернуть.

Синтаксис​

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

Параметры​

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

  • <json_object>: объект типа JSON, из которого необходимо извлечь ключи.

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

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

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

  • Array Возвращает массив строк, содержащий все ключи объекта JSON.

Примечания​

  • Возвращает NULL, если <json_object> или <path> имеет значение NULL.
  • Возвращает NULL, если значение не является объектом JSON (например, если это массив JSON).
  • Возвращает NULL, если объект, на который указывает <path>, не существует.

Примеры​

  1. Пример 1

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}');
    +---------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}') |
    +---------------------------------------+
    | ["a", "b"] |
    +---------------------------------------+
    SELECT JSON_KEYS('{}');
    +-----------------+
    | JSON_KEYS('{}') |
    +-----------------+
    | [] |
    +-----------------+
  2. Указание пути

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b');
    +----------------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b') |
    +----------------------------------------------+
    | ["c"] |
    +----------------------------------------------+
  3. Параметры со значением NULL

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', NULL);
    +---------------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}', NULL) |
    +---------------------------------------------+
    | NULL |
    +---------------------------------------------+
    SELECT JSON_KEYS(NULL);
    +-----------------+
    | JSON_KEYS(NULL) |
    +-----------------+
    | NULL |
    +-----------------+
  4. Значение не является объектом JSON

    SELECT JSON_KEYS('[1,2]');
    +--------------------+
    | JSON_KEYS('[1,2]') |
    +--------------------+
    | NULL |
    +--------------------+
    SELECT JSON_KEYS('{"k": [1, 2, 3]}', '$.k');
    +--------------------------------------+
    | JSON_KEYS('{"k": [1, 2, 3]}', '$.k') |
    +--------------------------------------+
    | NULL |
    +--------------------------------------+
  5. Объект, указанный в пути, не существует

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c');
    +----------------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c') |
    +----------------------------------------------+
    | NULL |
    +----------------------------------------------+