PostgreSQL возвращает набор результатов в виде массива JSON?

Я хотел бы, чтобы PostgreSQL возвращал результат запроса в виде одного массива JSON. Дано

create table t (a int primary key, b text);

insert into t values (1, 'value1');
insert into t values (2, 'value2');
insert into t values (3, 'value3');

Я хотел бы что-то похожее на

[{"a":1,"b":"value1"},{"a":2,"b":"value2"},{"a":3,"b":"value3"}]

или же

{"a":[1,2,3], "b":["value1","value2","value3"]}

(на самом деле было бы более полезно знать оба). Я пробовал некоторые вещи, как

select row_to_json(row) from (select * from t) row;
select array_agg(row) from (select * from t) row;
select array_to_string(array_agg(row), '') from (select * from t) row;

И я чувствую, что я рядом, но на самом деле не там. Должен ли я смотреть на другую документацию, кроме9,15. Функции и операторы JSON?

Кстати, я не уверен в своей идее. Это обычное дизайнерское решение? Я думаю, что я мог бы, конечно, взять результат (например) первого из вышеупомянутых 3 запросов и немного манипулировать им в приложении перед его передачей клиенту, но если PostgreSQL может создать конечный объект JSON напрямую, это было бы проще, потому что я до сих пор не включил какую-либо зависимость от какой-либо библиотеки JSON в свое приложение.

Ответы на вопрос(2)

Ваш ответ на вопрос