
Пример 1. Кортеж ключ: значение
select row_to_json(j) from ( select 'value_1' as key_1, 'value_2' as key_2, 'value_3' as key_3 ) as j;
Результат запроса:
{"key_1":"value_1","key_2":"value_2","key_3":"value_3"}
Пример 2. Массив JSON
select array_to_json(array_agg(row_to_json(j))) from ( select 'value_1' as key_1, 'value_2' as key_2, 'value_3' as key_3 ) as j;
Результат запроса:
[{"key_1":"value_1","key_2":"value_2","key_3":"value_3"}]
Пример 3. Массив кортежей JSON
select array_to_json(array_agg(json_build_object(j,i))) from ( values ('key_1', 'value_1'), ('key_2', 'value_2'), ('key_3', 'value_3') ) as t(j,i);
Результат запроса:
[{"key_1":"value_1"},{"key_2":"value_2"},{"key_3" "value_3"}]
Пример 4. Формирование JSON из переменного списка аргументов
select json_build_object ( 'key_1','value_1', 'key_2', 'value_2', 'key_3', 'value_3' );
Результат запроса:
{"key_1" : "value_1", "key_2" : "value_2", "key_3" : "value_3"}
Таблица для последующих примеров
create table some_table ( column_1 text, column_2 text, column_3 text, column_4 text, column_5 text, column_6 text ); insert into some_table ( column_1, column_2, column_3, column_4, column_5, column_6 ) values ( 'value_1', 'value_2', 'value_3', 'value_4', 'value_5', 'value_6' );
Пример 5. Формирование JSON из массива ключей и массива значений
select json_object ( '{key_1, key_2, key_3}', '{value_1, value_2, value_3}' );
Результат запроса:
{"key_1" : "value_1", "key_2" : "value_2", "key_3" : "value_3"}
Пример 6. Формирование кортежа ключ: значение
select json_agg(json_build_object ( 'key_1', t.column_1, 'key_2', t.column_2, 'key_3', t.column_3, 'key_4', t.column_4, 'key_5', t.column_5, 'key_6', t.column_6 )) from some_table as t;
Результат запроса:
[{"key_1" : "value_1", "key_2" : "value_2", "key_3" : "value_3", "key_4" : "value_4", "key_5" : "value_5", "key_6" : "value_6"}]
Пример 7. Формирование кортежа ключ: массив значений
select json_agg(json_build_object ( 'key_1', json_build_array(t.column_1, column_2), 'key_2', json_build_array(t.column_3, column_4), 'key_2', json_build_array(t.column_5, column_6) )) from some_table as t;
Результат запроса:
[{"key_1" : ["value_1", "value_2"], "key_2" : ["value_3", "value_4"], "key_2" : ["value_5", "value_6"]}]
ссылка на оригинал статьи https://habr.com/ru/post/658817/
Добавить комментарий