Последнее обновление
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
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}');+---------------------------------------+
| JSON_KEYS('{"a": 1, "b": {"c": 30}}') |
+---------------------------------------+
| ["a", "b"] |
+---------------------------------------+SELECT JSON_KEYS('{}');+-----------------+
| JSON_KEYS('{}') |
+-----------------+
| [] |
+-----------------+ -
Указание пути
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b');+----------------------------------------------+
| JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b') |
+----------------------------------------------+
| ["c"] |
+----------------------------------------------+ -
Параметры со значением 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 |
+-----------------+ -
Значение не является объектом 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 |
+--------------------------------------+ -
Объект, указанный в пути, не существует
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c');+----------------------------------------------+
| JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c') |
+----------------------------------------------+
| NULL |
+----------------------------------------------+