Справочник по функциям

JSONB_BUILD_OBJECT

Собирает объект JSON из пар «ключ — значение».

PostgreSQL 17.5
JSONB_BUILD_OBJECT(key, value[, ...])

Параметры

keytext
Ключ объекта, приводится к тексту
value
Значение любого типа, преобразуется в JSON

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

Объект jsonb; если ключ повторяется, остаётся последнее значение

Примеры

Объект из разных значений

PostgreSQL 17.5
SELECT JSONB_BUILD_OBJECT('a', 1, 'b', NULL, 'c', ARRAY [1, 2]) AS obj;
obj
{"a":1,"b":null,"c":[1,2]}

Член семьи в виде JSON

PostgreSQL 17.5
SELECT JSONB_BUILD_OBJECT(
		'id',
		member_id,
		'name',
		member_name,
		'status',
		status
	) AS member_json
FROM FamilyMembers;
member_json
{"id":1,"name":"Headley Quincey","status":"father"}
{"id":2,"name":"Flavia Quincey","status":"mother"}
{"id":3,"name":"Andie Quincey","status":"son"}
{"id":4,"name":"Lela Quincey","status":"daughter"}
{"id":5,"name":"Annie Quincey","status":"daughter"}
{"id":6,"name":"Ernest Forrest","status":"father"}
{"id":7,"name":"Constance Forrest","status":"mother"}
{"id":8,"name":"Wednesday Addams","status":"daughter"}

Подробности

Аргументов должно быть чётное число, иначе — ошибка. NULL становится JSON null, а массив — массивом JSON. Чтобы собрать объекты всех строк в один массив, используйте JSONB_AGG(JSONB_BUILD_OBJECT(...)).

Смотрите также