我有表示 json 的字符串,其中字段名称和值括在单引号中,例如{'name': 'Grzegorz', 'age': 123}。假设我在postgres数据库中还有一个表:
CREATE TABLE item (
metadata jsonb
);
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 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: {'...
Run Code Online (Sandbox Code Playgroud)
是否有可能插入名称用单引号'而不是双引号括起来的 json ",或者我应该将其全部转换'为"?
提前致谢!
格热戈日
Json语法需要双引号,所以这不是Postgres的问题。服务器仅接受有效的 json 值。
您可以使用replace():
insert into item
values(replace('{''name'': ''Grzegorz'', ''age'': 123}', '''', '"')::jsonb);
select * from item;
metadata
----------------------------------
{"age": 123, "name": "Grzegorz"}
(1 row)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3415 次 |
| 最近记录: |