我希望让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 Functions and Operators之外的其他文档
顺便说一下,我不太确定我的想法。这是通常的设计决定吗?我的想法是,当然,我可以采用上述3个查询中的第一个查询的结果(例如),并在将其提供给客户机之前在应用程序中稍微操作它,但是如果PostgreSQL可以直接创建最终的JSON对象,它将会更简单,因为我仍然没有在应用程序中包含对任何JSON库的任何依赖项。
https://stackoverflow.com/questions/24006291
复制相似问题