【发布时间】:2015-11-25 13:16:08
【问题描述】:
我有代表 jsons 的字符串,其中字段名称和值用单引号括起来,例如 {'name': 'Grzegorz', 'age': 123}。假设我在 postgres 数据库中也有一个表:
CREATE TABLE item (
metadata jsonb
);
我正在尝试使用 JOOQ 插入行。 JOOQ 生成以下语句:
insert into Item values('{''name'': ''Grzegorz'', ''age'': 123}'::jsonb); 但抛出错误:
ERROR: invalid input syntax for type json
LINE 1: insert into Item values('{''name'': ''Grzegorz'', ''age'': 1...
Token "'" is invalid.
JSON data, line 1: {'...
有没有可能插入带有单引号'而不是双引号"的名称的json,或者我应该将所有'转换为"?
提前致谢!
格热戈茨
【问题讨论】:
-
{'name': 'Grzegorz', 'age': 123}可以是有效的 javascript 值,但不是有效的 JSON。盲目地将所有'转换为"可能很危险,只要考虑 f.ex。{'name': 'Gregor "Grzegorz"', 'age': 123}(如果这是一个可能的生成值,因为它也可以用 javascript 解析)。相反,我会研究这些值是如何生成的,并寻找一种方法来生成 valid JSON 值。
标签: postgresql jsonb