Аз съм нов в Postgres и използвам версия 9.4. Имам заявка, връщаща a json
колона.
Как мога да добавя ключ към JSON масив стойност?
Моята заявка:
select array_to_json(array_agg(t))
from (select DISTINCT ON(city,state)latitudes,longitudes,city,state
from zips where city ilike "ORL%"
order by city,state,ziptype desc
limit 10) t;
Резултатът е като:
[{"latitudes": 31.22,"longitudes": -103.91,"city": "Orla","state": "TX"}, ...
Въпреки това бих искал да го нарека:
["Locations": [{"latitudes": 31.22,"longitudes": -103.91,"city": "Orla","state": "TX"}, ...
Отговори:
2 за отговор № 1като @Abelisto коментира, употреба json_build_object()
(или jsonb_build_object()
), за да прикачите ключ към стойността си.
И по-просто json_agg(t)
(или jsonb_agg(t)
) вместо array_to_json(array_agg(t))
:
SELECT json_build_object("Locations", json_agg(t))
FROM (
SELECT DISTINCT ON (city, state)
latitudes, longitudes, city, state
FROM zips
WHERE city ILIKE "ORL%"
ORDER by city, state, ziptype DESC
LIMIT 10
) t;