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

get_json_string,get_json_object

Анализирует и получает строки из указанного пути (json_path) в JSON-строке. Если формат json_string или json_path неверен или если соответствующее значение не найдено, эта функция вернет NULL.

подсказка

Все JSON-функции и операторы перечислены в навигации и на странице обзора

Ускорьте ваши запросы с помощью генерируемых столбцов

Псевдоним — get_json_object.

Синтаксис

VARCHAR get_json_string(VARCHAR json_str, VARCHAR json_path)

Параметры

  • json_str: JSON-строка. Поддерживаемый тип данных — VARCHAR.
  • json_path: JSON-путь. Поддерживаемый тип данных — VARCHAR. json_path начинается с $ и использует . в качестве разделителя пути. [ ] используется как индексы массива, которые начинаются с 0. Например, $."my.key"[1] указывает на получение второго значения из элемента my.key.

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

Возвращает значение типа VARCHAR. Если соответствующий объект не найден, возвращается NULL.

Примеры

Пример 1: Получить значение с ключом k1.

SELECT get_json_string('{"k1":"v1", "k2":"v2"}', "$.k1");
+---------------------------------------------------+
| get_json_string('{"k1":"v1", "k2":"v2"}', '$.k1') |
+---------------------------------------------------+
| v1 |
+---------------------------------------------------+

Пример 2: Получить значение с ключом a из первого элемента.

SELECT get_json_object('[{"a":"123", "b": "456"},{"a":"23", "b": "56"}]', '$[0].a');
+------------------------------------------------------------------------------+
| get_json_object('[{"a":"123", "b": "456"},{"a":"23", "b": "56"}]', '$[0].a') |
+------------------------------------------------------------------------------+
| 123 |
+------------------------------------------------------------------------------+

Пример 3: Получить второй элемент в массиве с ключом my.key

SELECT get_json_string('{"k1":"v1", "my.key":["e1", "e2", "e3"]}', '$."my.key"[1]');
+------------------------------------------------------------------------------+
| get_json_string('{"k1":"v1", "my.key":["e1", "e2", "e3"]}', '$."my.key"[1]') |
+------------------------------------------------------------------------------+
| e2 |
+------------------------------------------------------------------------------+

Пример 4: Получить первый элемент в массиве по пути k1.key -> k2.

SELECT get_json_string('{"k1.key":{"k2":["v1", "v2"]}}', '$."k1.key".k2[0]');
+-----------------------------------------------------------------------+
| get_json_string('{"k1.key":{"k2":["v1", "v2"]}}', '$."k1.key".k2[0]') |
+-----------------------------------------------------------------------+
| v1 |
+-----------------------------------------------------------------------+

Пример 5: Получить все значения с ключом k1 из массива.

SELECT get_json_string('[{"k1":"v1"}, {"k2":"v2"}, {"k1":"v3"}, {"k1":"v4"}]', '$.[*].k1');
+-------------------------------------------------------------------------------------+
| get_json_string('[{"k1":"v1"}, {"k2":"v2"}, {"k1":"v3"}, {"k1":"v4"}]', '$.[*].k1') |
+-------------------------------------------------------------------------------------+
| ["v1", "v3", "v4"] |
+-------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

keyword

GET_JSON_STRING,GET,JSON,STRING