如何将 varchar 插入 postgresql json 列

How to insert varchar into postgresql json column

我一直在苦苦思索如何将 table 插入到具有 JSON 列的 PG 中... 我正在从另一个 table 中提取一个位列,现在我想将该位插入到 json 列中,例如:

INSERT INTO TABLE (JSON) VALUES( '{"IsAllowed":"' || is_allowed::TEXT || '"}'::JSON )

is_allowed表示从另一个table... 我得到:

"column "XXX" is of type json but expression is of type text"

有谁知道我怎样才能做到这一点?

谢谢!

您的命令:

INSERT INTO TABLE (JSON) VALUES( '{"IsAllowed":"' || is_allowed::TEXT || '"}'::JSON )

正在将 '"}' 转换为 JSON。尝试添加一些括号:

INSERT INTO TABLE (JSON) VALUES( ('{"IsAllowed":"' || is_allowed::TEXT || '"}')::JSON )

注意:我无法复制您收到的错误(得到“令牌”“}”无效。)但使用括号时效果很好。

您应该使用 jsonb 而不是 json,但这不是您问题的一部分。

PostgreSQL 不允许 bitboolean 类型之间的双向转换。 bitint.

也是如此

请试试这个:

insert into table (json) values
 (json_build_object('IsAllowed', is_allowed = 1::bit));