JSONлише PostgreSQL

JSONB_OBJECT_KEYS

Повертає ключі JSON-об'єкта — по рядку на кожен.

Синтаксис

JSONB_OBJECT_KEYS(<json-об'єкт>)

Лише назви ключів верхнього рівня, без значень. Зручно, щоб дізнатися, які поля взагалі трапляються в JSON-стовпці, або перевірити, чи не прийшло зайвих.

Дані для прикладів

employees

namedepartmentsalarybonusphone
Emmabackend1200300+44 7700 900123
Liambackend1000NULLNULL
Oliviafrontend1350150+44 7700 900456
Noahfrontend950NULL+44 7700 900789
Sophiadesign1200200NULL

Ці таблиці вже створено в пісочниці — приклади нижче працюють із ними. Хочеш повторити у своїй базі — скопіюй SQL.

Ключі об'єкта
SELECT JSONB_OBJECT_KEYS('{"color": "black", "storage": 256, "wireless": true}') AS key;
key
color
storage
wireless
Скільки ключів
SELECT COUNT(*) AS key_count
FROM JSONB_OBJECT_KEYS('{"color": "black", "storage": 256, "wireless": true}');
key_count
3
Які поля в записі таблиці
SELECT JSONB_OBJECT_KEYS(TO_JSONB(e)) AS column_name
FROM employees e
WHERE e.name = 'Emma';
column_name
name
bonus
phone
salary
department

TO_JSONB(e) робить із рядка таблиці об'єкт, а JSONB_OBJECT_KEYS перелічує його ключі — тобто назви стовпців.

Зверни увагу

Лише верхній рівень: ключі вкладених об'єктів не потрапляють.

Для масиву — помилка cannot call jsonb_object_keys on an array.

Порядок ключів — не той, у якому їх записали: jsonb зберігає їх упорядкованими, коротші раніше.

Перевірити один ключ простіше оператором ?: data ? 'color' дає true чи false.

Схожі функції