PostgreSQL-Ergebnismenge als JSON-Array zurückgeben?

Ich möchte, dass PostgreSQL das Ergebnis einer Abfrage als ein JSON-Array zurückgibt. Gegeben

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');

Ich hätte gerne etwas Ähnliches wie

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

oder

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

(Eigentlich wäre es sinnvoller, beide zu kennen). Ich habe einige Dinge ausprobiert wie

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;

Und ich fühle mich nah, aber nicht wirklich da. Sollte ich mir andere Unterlagen ansehen, außer9.15. JSON-Funktionen und -Operatoren?

Bei meiner Idee bin ich mir übrigens nicht sicher. Ist das eine übliche Designentscheidung? Ich denke, ich könnte natürlich das Ergebnis (zum Beispiel) der ersten der oben genannten 3 Abfragen nehmen und es in der Anwendung leicht manipulieren, bevor ich es an den Client weitergebe, aber wenn PostgreSQL das endgültige JSON-Objekt direkt erstellen kann, Es wäre einfacher, da ich meiner Anwendung noch keine Abhängigkeit von einer JSON-Bibliothek hinzugefügt habe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage