【发布时间】:2021-11-24 00:42:53
【问题描述】:
我在 PostgresSQL DB 中有下表:
CREATE TABLE unit(
id SERIAL PRIMARY KEY,
unit_capabilities JSON,
);
我有以下插入查询:
INSERT INTO unit (unit_capabilities)
VALUES ('[{"type": "din", "on": 1, "off": 2}, {"type": "dou", "on": 3, "off": 4}]');
我正在使用带有“pg”包的 NodeJS 来查询该数据,但它们以以下格式返回:
[{"type":"din","on":1,"off":2},{"type":"dou","on":3,"off":4}]
我无法将其解析为 JSON 对象。我收到以下错误:
error: invalid input syntax for type json
我将如何进行这项工作?使用我的设置(NodeJS 和 PG 包)从 PostgreSQL JSON 字段存储和检索数据的最佳方式是什么?
感谢您的热心帮助。
【问题讨论】:
-
insert中的列名与表定义中的列名不匹配,id与unit_id。insert中的数据类型也与表列不匹配,您试图将text或uuid放入serial列。pg包裹应该 handle parsing json 在前往数据库并返回给您的途中 -
@Zegarek 抱歉,这是我尝试简化示例时的拼写错误。我已经解决了这个问题。我正在检索这些数据并将它们记录下来,这就是我得到的。
-
您将获得与 JSON 没有任何关系的 HTML 实体。一定有其他事情发生。
-
@ÁlvaroGonzález 谢谢,你是对的,还有其他事情正在发生。我正在使用一个快速验证器来转义所有 HTML 实体。这样一个愚蠢的错误让我特别是我不是第一次这样做。
标签: node.js postgresql pg