sql - postgresql to_json() 函数转义所有双引号字符

标签 sql json postgresql-9.3

我写了一个 plpgsql 脚本,它在一个字符串中生成一个 json 对象数组,但是在我使用 to_json() 方法将一个带有该字符串的变量传递给它之后,它返回一个双引号的结果,并且每个双引号字符都被转义了。但我需要原样的字符串。

jsonResult 变量的初始内容是:

[{"key":{04949429911,"Code":"400"},"value":"20000.00"},{"key":{"InsuranceNumber":"04949429911","Code":"403"},"value":"10000.00"},...]



但是在 to_json() 之后它看起来像这样:

"[{\"key\":{04949429911,\"Code\":\"400\"},\"value\":\"20000.00\"},{\"key\":{\"InsuranceNumber\":\"04949429911\",\"Code\":\"403\"},\"value\":\"10000.00\"}...]"



这是存储在 jsonResult 中的所有内容中断的地方:
UPDATE factor_value SET params = to_json(jsonResult) WHERE id = _id;  

我究竟做错了什么?

最佳答案

This answer指出简单地转换到 json应该足够了:

UPDATE factor_value SET params = jsonResult::json WHERE id = _id;

您看到的奇怪转义可能是由于 postgresql 没有意识到您已经拥有有效的 JSON 和您的 varchar只是转换为普通的 javascript/JSON 字符串。

关于sql - postgresql to_json() 函数转义所有双引号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26998058/

相关文章:

c# - Windows 条形码阅读器服务

json - 使用 jq 忽略不可解析的 JSON

javascript - 如何在 .net 后端到 js 前端的 2 个大嵌套 json 之间进行 JSON 差异/修补?

postgresql - Postgres 复制 : Incomplete Startup Packet

sql - IN 子句中可以使用的标量的最大数量是多少?

mysql - 如何返回每个组中存在的所有行?

mysql - mysql触发器中的程序可以工作吗?

mysql - MySQL 中何时使用单引号、双引号和反引号

c# - 解析嵌套 JSON——子属性为 null

postgresql - 在 PostgreSQL 中计算文件大小