Postgres数据库JSON字段存储的JSON.stringify结果是否合规?
问题解答
你的存储内容不正确,不符合Postgres JSON列要求的合法JSON格式,问题出在这几个核心点:
- 合法JSON要求键名必须用双引号包裹,比如
"visualization_options",但你的存储内容里键名未加引号 - 原始数组结构完全丢失:原本的
['Grid', 'Filmstrip']应该保留为JSON数组["Grid", "Filmstrip"],结果里变成了无引号的Grid,Filmstrip,既不是数组也不是合法字符串 - 整体被额外双引号包裹,导致存储的是一个格式错误的字符串,而非可被解析的JSON对象
正确处理方式:
- 先构造合法的JavaScript对象:
const data = { visualization_options: ['Grid', 'Filmstrip'] }; - 用
JSON.stringify处理后会生成标准JSON字符串:{"visualization_options":["Grid","Filmstrip"]} - 将这个字符串存入Postgres的JSON列,这才是符合规范的合法JSON数据。
Postgres的JSON列严格遵循JSON格式规范,只有合法的JSON结构才能被正确识别和存储,你当前的存储内容无法被当作JSON对象处理。
内容的提问来源于stack exchange,提问作者RobertW
相关产品推荐
相关产品推荐

