I have two JSON rows in a PostgreSQL 9.4 table:
the_column
----------------------
{\"evens\": [2, 4, 6]}
{\"odds\": [1, 3, 5]}
<
Use json_agg() to get an array:
SELECT json_agg(source_column) AS the_column
FROM tbl;
Or json_each() in a LATERAL
join and json_object_agg() to assemble elements:
SELECT json_object_agg(key, value) AS the_column
FROM tbl, json_each(data);
FYI, if someone's using jsonb in >= 9.5 and they only care about top-level elements being merged without duplicate keys, then it's as easy as using the || operator:
select '{"evens": [2, 4, 6]}'::jsonb || '{"odds": [1, 3, 5]}'::jsonb;
?column?
-----------------------------------------
{"odds": [1, 3, 5], "evens": [2, 4, 6]}
(1 row)