Форматът на обекта 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, така че една възможност е да се използват съставни типове, но след това, строги / агрегиран резултат завършва с "()" в тях.
Отговори:
1 за отговор № 1select array_to_json(array_agg(json_build_array(id, name)))
from temp;
array_to_json
---------------------------
[[1, "John"],[2, "Jack"]]