Postgresql 将varchar数组转换为带有jsonb对象的数组

Postgresql 将varchar数组转换为带有jsonb对象的数组,postgresql,jsonb,Postgresql,Jsonb,我有一个字符串数组,如下所示: SELECT ARRAY['user1@example.com', 'user2@example.com', 'user3@example.com']; 如何转换地图?将其转换为jsonb对象的jsonb数组,如下所示: SELECT [{"email": "user1@example.com"}, {"email": "user2@example.com"}, {"email": "user3@example.com"}]::jsonb; 将数组元素展开为一

我有一个字符串数组,如下所示:

SELECT ARRAY['user1@example.com', 'user2@example.com', 'user3@example.com'];
如何转换地图?将其转换为jsonb对象的jsonb数组,如下所示:

SELECT [{"email": "user1@example.com"}, {"email": "user2@example.com"}, {"email": "user3@example.com"}]::jsonb;
将数组元素展开为一个记录,每个记录都带有unnest 使用jsonb_object_build创建JSON对象,以创建所需的键/值结构 使用jsonb_agg将这些对象重新聚合到一个新的JSON数组中
SELECT
    jsonb_agg(jsonb_build_object('email', elems))
FROM (
    SELECT ARRAY['user1@example.com', 'user2@example.com', 'user3@example.com'] AS a
) s,
unnest(a) AS elems