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

SORT_JSON_OBJECT_KEYS

Описание​

SORT_JSON_OBJECT_KEYS сортирует ключи объекта JSON. Эта функция принимает объект JSON и возвращает новый объект JSON с ключами, отсортированными в лексикографическом порядке.

Обратите внимание, что согласно стандарту JSON объекты JSON представляют собой неупорядоченные коллекции. Однако эта функция полезна, когда нужно обеспечить единый порядок ключей, например при сравнении двух объектов JSON на идентичность содержимого.

Синтаксис​

SORT_JSON_OBJECT_KEYS(json_value)

Псевдоним​

SORT_JSONB_OBJECT_KEYS

Параметры​

json_value - Значение JSON, ключи которого нужно отсортировать. Должно иметь тип JSON.

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

Возвращает новый объект JSON с ключами, отсортированными в лексикографическом порядке. Тип возвращаемого значения совпадает с типом входного значения JSON.

Если входное значение равно NULL, функция возвращает NULL.

Примеры​

Базовая сортировка ключей​

SELECT sort_json_object_keys(cast('{"b":123,"b":456,"a":789}' as json));
+------------------------------------------------------------------+
| sort_json_object_keys(cast('{"b":123,"b":456,"a":789}' as json)) |
+------------------------------------------------------------------+
| {"a":789,"b":123} |
+------------------------------------------------------------------+

Обработка вложенных массивов JSON​

SELECT sort_json_object_keys(cast('[{"b":123,"b":456,"a":789},{"b":123},{"b":456},{"a":789}]' as json));
+----------------------------------------------------------------------------------------------------+
| sort_json_object_keys(cast('[{"b":123,"b":456,"a":789} ,{"b":123},{"b":456},{"a":789} ]' as json)) |
+----------------------------------------------------------------------------------------------------+
| [{"a":789,"b":123},{"b":123},{"b":456},{"a":789}] |
+----------------------------------------------------------------------------------------------------+

Обработка значений NULL​

SELECT sort_json_object_keys(null);
+-----------------------------+
| sort_json_object_keys(null) |
+-----------------------------+
| NULL |
+-----------------------------+

Примечания​

  1. Функция SORT_JSON_OBJECT_KEYS имеет псевдоним SORT_JSONB_OBJECT_KEYS; обе функции работают одинаково.

  2. Эта функция сортирует только ключи объектов, не изменяя связанные с ними значения.

  3. Функция сортирует только объекты, но не массивы, поскольку согласно стандарту массивы являются упорядоченными коллекциями.

  4. Повторяющиеся ключи в объектах JSON объединяются при преобразовании в тип JSON в Doris: сохраняется только первая пара «ключ — значение».

  5. Эта функция в основном используется для обеспечения единого порядка ключей объектов JSON при сравнении или отладке, поскольку по умолчанию тип JSON в Doris не гарантирует порядок ключей.