加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在Postgresql中将JSONB值转换为boolean?

发布时间:2020-12-13 16:16:49 所属栏目:百科 来源:网络整理
导读:在Postgres中将布尔字段从 JSONB对象转换为普通bool类型的最佳方法是什么? 例如,我有一个JSON对象{“foo”:true},我可以在Postgresql中使用它.例如:select(‘{“foo”:true}’:: jsonb);这给了我一些类型JSONB. 现在我想将foo字段提取为布尔值.如果我做
在Postgres中将布尔字段从 JSONB对象转换为普通bool类型的最佳方法是什么?

例如,我有一个JSON对象{“foo”:true},我可以在Postgresql中使用它.例如:select(‘{“foo”:true}’:: jsonb);这给了我一些类型JSONB.

现在我想将foo字段提取为布尔值.如果我做:

select ('{"foo": true}'::jsonb)->'foo';

我得到了JSONB类型的东西.

但是,我无法将JSONB转换为布尔值.如果不是我做的:

select ('{"foo": true}'::jsonb)->>'foo';

我会找回类型字符串的东西.从那我可以转换为布尔值. (例如:)

select (('{"foo": true}'::jsonb)->>'foo')::bool;

但从内部表示到字符串,再到另一个内部表示,这似乎有点蠢.

有没有直接去布尔?

我目前最好的工作似乎是:

select (('{"foo": true}'::jsonb)->'foo') = 'true'::jsonb;

但这似乎也有点不对劲.

你可以使用 json_to_record
select foo
from json_to_record('{"foo": true}') as x(foo bool);

我不确定这是否真的能为你节省内部演员阵容,但这是我在9.4中最接近的事情

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读