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

如何在PostgreSQL中将指定JSON数据转换为行列形式展示

PostgreSQL处理嵌套JSON生成指定行列结果的方法

需求说明

给定嵌套JSON数据:

[
    {
        "name": "Ali", 
        "summaries": 
        [
            {"claim": "a" , "balance": 1}, 
            {"claim": "b" , "balance": 1}
        ]
    },
    {
        "name": "Abu", 
        "summaries": 
        [
            {"claim": "a" , "balance": 1}, 
            {"claim": "b" , "balance": 1}
        ]
    }
]

需转换为如下行列结构:

namesummaries
ali{claim: 'a', balance: 1}
abu{claim: 'a', balance: 1}

实现方法

1. 数据存储在表中的场景

假设已创建表test_data并存储上述JSON:

-- 创建测试表
CREATE TABLE test_data (json_col JSON);

-- 插入JSON数据
INSERT INTO test_data VALUES ('[
    {
        "name": "Ali", 
        "summaries": 
        [
            {"claim": "a" , "balance": 1}, 
            {"claim": "b" , "balance": 1}
        ]
    },
    {
        "name": "Abu", 
        "summaries": 
        [
            {"claim": "a" , "balance": 1}, 
            {"claim": "b" , "balance": 1}
        ]
    }
]');

执行以下查询获取目标结果:

SELECT
    LOWER(obj ->> 'name') AS name,
    obj -> 'summaries' -> 0 AS summaries
FROM
    test_data,
    json_array_elements(json_col) AS obj;

2. 直接处理JSON字符串的场景

无需创建表,直接对JSON字符串进行处理:

SELECT
    LOWER(obj ->> 'name') AS name,
    obj -> 'summaries' -> 0 AS summaries
FROM
    json_array_elements('[
    {
        "name": "Ali", 
        "summaries": 
        [
            {"claim": "a" , "balance": 1}, 
            {"claim": "b" , "balance": 1}
        ]
    },
    {
        "name": "Abu", 
        "summaries": 
        [
            {"claim": "a" , "balance": 1}, 
            {"claim": "b" , "balance": 1}
        ]
    }
]'::JSON) AS obj;

3. 输出与示例完全一致的字符串格式(可选)

如果需要将summaries字段转换为不带双引号键的字符串格式,可使用字符串替换:

SELECT
    LOWER(obj ->> 'name') AS name,
    REPLACE(REPLACE(obj -> 'summaries' ->> 0, '"claim"', 'claim'), '"balance"', 'balance') AS summaries
FROM
    test_data,
    json_array_elements(json_col) AS obj;

内容的提问来源于stack exchange,提问作者Md Fauzan Bin Md Asri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:02:40