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

如何将两种指定格式字符串转换为Postgresql的json[]类型列

解决方案

转换逻辑说明

两种输入格式的核心差异为外层包裹符号和引号类型,可通过统一预处理消除差异后完成类型转换:

  • 第一步:将所有单引号替换为JSON标准要求的双引号
  • 第二步:将第一种格式外层的{}替换为JSON数组标准的[]
  • 第三步:将预处理后的标准JSON数组字符串转换为PostgreSQL的json[]类型

可直接执行的SQL示例

假设你的表名为业务表名,存储原始文本的列名为原始文本列名,目标json[]类型列名为目标列名,可直接用如下语句完成更新:

UPDATE 业务表名
SET 目标列名 = array(
    SELECT json_array_elements(
        regexp_replace(
            regexp_replace(
                replace(原始文本列名, '''', '"'),
                '^{', '['
            ),
            '}$', ']'
        )::json
    )
);

效果验证

可先执行查询验证转换结果是否符合预期:

SELECT 
    原始文本列名,
    array(
        SELECT json_array_elements(
            regexp_replace(
                regexp_replace(
                    replace(原始文本列名, '''', '"'),
                    '^{', '['
                ),
                '}$', ']'
            )::json
        )
    ) AS 转换后json数组
FROM 业务表名
LIMIT 10;

异常场景适配

如果原始文本中存在内容本身带单引号的情况,可在替换单引号前先对内容内的单引号做转义处理,根据实际格式调整替换规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:06:05