You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL中将查询结果转换为单个JSON数组对象

解决方案

你只需要在外层再套一层json_agg聚合函数即可,修改后的完整查询语句如下:

SELECT json_agg(row_to_json(r)) AS result_json_array
FROM 
(
    select ff.*, json_agg(ffo."option") as options
    from form_field ff, form_field_options ffo 
    where ffo.form_field_id = ff.id and ff.form_id = 'fef5c7e0-170c-4556-80d2-42e3db66cfa2'
    group by ff.id
) r
  • 原查询中row_to_json(r)会为子查询返回的每一行生成独立的JSON对象,在外层使用json_agg聚合函数,即可将所有独立JSON对象合并为你需要的[{...}, {...}]格式的JSON数组。
  • 如果需要使用PostgreSQL推荐的高性能JSONB类型,可以对应替换为jsonb_agg(to_jsonb(r)),使用体验完全一致,后续做JSON操作的性能更好。
  • 若需要指定数组内元素的排序规则,可以在json_agg内添加ORDER BY语句,例如json_agg(row_to_json(r) ORDER BY r.id ASC)即可按表单字段ID升序排列数组元素。

内容的提问来源于stack exchange,提问作者DangTri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:54:03