gpt4 book ai didi

postgresql - 将字段名称用单引号括起来的 json 字符串作为 jsonb 字段插入到 postgresql 中

转载 作者:行者123 更新时间:2023-11-29 12:04:33 25 4
gpt4 key购买 nike

我有表示 json 的字符串,其中字段名称和值用单引号引起来,例如 {'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,或者我应该将所有 ' 转换为"?

提前致谢!

格热戈日

最佳答案

Json syntax需要双引号,所以这不是 Postgres 的问题。服务器只接受有效的 json 值。

您可以使用 replace() :

insert into item 
values(replace('{''name'': ''Grzegorz'', ''age'': 123}', '''', '"')::jsonb);

select * from item;

metadata
----------------------------------
{"age": 123, "name": "Grzegorz"}
(1 row)

关于postgresql - 将字段名称用单引号括起来的 json 字符串作为 jsonb 字段插入到 postgresql 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33917496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com