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

Postgres导出JSON时如何让Description字段值不被双引号包裹

解决Postgres导出JSON时Description字段被双引号包裹的问题

问题核心是你用FORMAT拼接出来的是文本字符串,而非原生JSON对象类型,所以导出时Postgres会将其作为普通字符串值处理,自动添加双引号。正确做法是用Postgres原生的JSON构造函数生成JSON对象,而非手动拼接字符串。

修改后的查询语句

导出单条记录为JSON对象

SELECT row_to_json(t)
FROM (
  SELECT 
    uuid AS "Id",
    json_build_object('Fr', description, 'En', '') AS "Description",
    othercolumn AS "Otherstuff"
  FROM MyTable
) t;

导出所有记录为JSON数组

SELECT json_agg(row_to_json(t))
FROM (
  SELECT 
    uuid AS "Id",
    json_build_object('Fr', description, 'En', '') AS "Description",
    othercolumn AS "Otherstuff"
  FROM MyTable
) t;

关键说明

  • json_build_object('Fr', description, 'En', '')会直接生成JSON对象类型,而非字符串,因此在最终导出的JSON中,这个字段会以原生JSON对象的形式存在,不会被双引号包裹。
  • 如果你需要使用jsonb类型(Postgres的二进制JSON类型,性能更优),可以将json_build_object替换为jsonb_build_object,row_to_json替换为row_to_jsonb,json_agg替换为jsonb_agg。
  • 原生JSON构造函数会自动处理description字段中的特殊字符(比如双引号、反斜杠),避免手动拼接字符串导致的JSON语法错误,安全性和可靠性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:27:14