Arrays 如何在Postgresql中获取数组的JavaScript/JSON数组?

Arrays 如何在Postgresql中获取数组的JavaScript/JSON数组?,arrays,json,postgresql,postgresql-9.4,Arrays,Json,Postgresql,Postgresql 9.4,JSON对象格式非常详细: "[{"id":1,"name":"John"}, {"id":2,"name":"Jack"}]" 有时,重复的字段名比实际数据占用更多的空间。为了节省带宽,加快页面加载,我想生成一个字符串格式的JavaScript数组,并将其发送给客户端。例如,对于此数据: create table temp ( id int, name text ); insert into temp values (1, 'John'), (2, 'Jack'); 我想获得'[

JSON对象格式非常详细:

"[{"id":1,"name":"John"}, {"id":2,"name":"Jack"}]"
有时,重复的字段名比实际数据占用更多的空间。为了节省带宽,加快页面加载,我想生成一个字符串格式的JavaScript数组,并将其发送给客户端。例如,对于此数据:

create table temp (
  id int,
  name text
);

insert into temp values (1, 'John'), (2, 'Jack');
我想获得
'[[1,“John”],[2,“Jack”]'
。我该怎么做


我不想通过键入来聚合列,因为这将很难维护。我还知道postgresql不允许像JavaScript这样的数组中有多个类型,所以有一种可能是使用复合类型,但经过字符串化/聚合的结果最终会在其中包含“()”

当用json_构建_数组替换jsonb_构建_数组时,这就起到了作用。Postgresql 9.4为前者触发了一个错误。这与我想要的非常接近,因此我可以使用它。实际上,我是在从temp中选择array\u到json(array\u agg(json\u build\u array(temp))但这又将行转换为JSON对象类型。这是可能的,但这是另一个问题。问它,我或其他人可能会回答。
select array_to_json(array_agg(json_build_array(id, name)))
from temp;
       array_to_json       
---------------------------
 [[1, "John"],[2, "Jack"]]