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

如何在查询函数中传递JSON并转义单引号

解决PostgreSQL中JSON字符串单引号转义问题

直接拼接SQL语句插入JSON是最容易触发转义问题的操作,还存在SQL注入风险,给你两种可行的解决办法:

1. 使用参数化查询(推荐)

这是最安全省心的方式,PostgreSQL客户端会自动处理JSON序列化和特殊字符转义,完全不用手动处理单引号:

const jsonData = { name: "John Doe", items: ["Don't", "Drink"] };
pgClient.query('INSERT INTO data VALUES($1, $2)', [83, jsonData]);

客户端会自动把jsonData转换成PostgreSQL可识别的JSON格式,同时妥善处理Don't里的单引号。

2. 手动构造JSON字符串(不推荐)

如果一定要手动编写JSON字符串,注意两个关键规则:

  • SQL字符串内的单引号需要双写来转义(而非\')
  • 替换代码里的HTML实体"为真实的双引号"

修改后的代码示例:

pgClient.query(`INSERT INTO data VALUES(83, '{"name": "John Doe", "items": ["Don''t", "Drink"]}')`);

这里Don''t中的两个单引号是PostgreSQL认可的转义方式,能被正确解析为Don't。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:55:15