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

PostgreSQL中jsonb类型转换对相同逻辑输入是否输出一致?

PostgreSQL的jsonb类型对相同逻辑输入是否会输出一致的结果?

是的,PostgreSQL的jsonb类型对逻辑等价的JSON输入,会输出一致的序列化结果。

依据说明

PostgreSQL的jsonb类型存储的是经过解析的二进制格式数据,而非原始字符串。在序列化输出为文本形式时,会遵循固定规则:

  • 对对象的键(包括顶层和嵌套对象的键)按字典序排序
  • 忽略输入中所有无关的空白字符(如换行、多余空格)
  • 仅保留键值对的逻辑内容,忽略键的顺序差异

这意味着只要两个JSON的键值对集合完全相同,无论输入时键的顺序、空白格式如何,转换为jsonb后再序列化输出的结果都会完全一致。

测试验证

测试SQL语句

SELECT ('{"def": {"apply_if_file": "go.mod", "package_ecosystem": "gomod", "schedule_interval": "daily"}, "type": "dependabot_configured"}' :: JSONB);

SELECT ('{"def":   {
"package_ecosystem": "gomod", "schedule_interval":         "daily", "apply_if_file": "go.mod"},       "type": "dependabot_configured"}' :: JSONB);

SELECT ('{"type": "dependabot_configured", "def":   {
  "package_ecosystem": "gomod", "schedule_interval":         "daily", "apply_if_file": "go.mod"}       }' :: JSONB);

输出结果

{"def": {"apply_if_file": "go.mod", "package_ecosystem": "gomod", "schedule_interval": "daily"}, "type": "dependabot_configured"}

三个逻辑等价但格式、键顺序不同的JSON输入,转换为jsonb后输出完全一致,验证了上述结论。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:42:41