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

如何用PostgreSQL将单条记录转换为指定格式JSON?

PostgreSQL 实现行数据到指定JSON数组格式的转换

需求说明

现有数据表结构及数据如下:

ABCD
catcat2cat3cat4

需要将其转换为如下结构的JSON数组:

[
    {
        "name":"A",     
        "value":"cat",  
        "type" : "String"
    },
    {
        "name":"B",
        "value":"cat2", 
        "type" : "String"
    },
    {
        "name":"C",
        "value":"cat3", 
        "type" : "String"
    },
    {
        "name":"D",
        "value":"cat4",
        "type" : "String" 
    }
]

实现查询语句

假设你的数据表名为test_table,可以使用PostgreSQL的JSON函数组合实现需求:

SELECT json_agg(
    json_build_object(
        'name', key,
        'value', value,
        'type', 'String'
    )
) AS json_result
FROM test_table,
     json_each_text(row_to_json(test_table));

函数说明

  1. row_to_json(test_table):将表中的一行数据转换为JSON对象,键为列名,值为对应单元格的内容。
  2. json_each_text(...):将上述JSON对象拆分为多行记录,每行包含key(原列名)和value(原单元格值)两个字段。
  3. json_build_object(...):按照需求构造单个JSON对象,固定type字段值为'String',name和value分别取拆分后的key和value。
  4. json_agg(...):将所有构造好的单个JSON对象聚合为一个JSON数组,得到最终结果。

注意事项

如果数据表中有多行数据,需要根据业务需求添加分组逻辑(例如使用GROUP BY),避免将所有行的结果合并到同一个数组中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:00:41