jsonb_typeof()

返回 jsonb 值类型的函数(以字符串形式)

jsonb_typeof() 是一个系统函数,返回顶级 jsonb 值的类型,类型以文本字符串形式表示。

jsonb_typeof()PostgreSQL 9.4 中添加。

用法

json_typeof ( jsonb ) → text

将返回以下值之一:

  • object
  • array
  • string
  • number
  • boolean
  • null

请注意,这些值,尤其是在 null 的情况下,并非与相应的 SQL 数据类型直接等效。

更改历史记录

示例

使用 jsonb_typeof() 确定各种 jsonb 值的类型

postgres=# SELECT jsonb_typeof('{"foo":[]}'::jsonb);
 jsonb_typeof
--------------
 object
(1 row)

postgres=# SELECT jsonb_typeof('[]'::jsonb);
 jsonb_typeof
--------------
 array
(1 row)

postgres=# SELECT jsonb_typeof('"foo"'::jsonb);
 jsonb_typeof
--------------
 string
(1 row)

postgres=# SELECT jsonb_typeof('123'::jsonb);
 jsonb_typeof
--------------
 number
(1 row)

postgres=# SELECT jsonb_typeof('false'::jsonb);
 jsonb_typeof
--------------
 boolean
(1 row)

postgres=# SELECT jsonb_typeof('null'::jsonb);
 jsonb_typeof
--------------
 null
(1 row)

请注意,任何数值都映射到 number 类型

postgres=# SELECT jsonb_typeof(123::int::text::jsonb);
 jsonb_typeof
--------------
 number
(1 row)

postgres=# SELECT jsonb_typeof(1.23::numeric::text::jsonb);
 jsonb_typeof
-------------
 number
(1 row)

jsonb null 不等效于 SQL NULL

postgres=# SELECT jsonb_typeof('null'::jsonb),
                  jsonb_typeof(NULL::jsonb) IS NULL;
 jsonb_typeof | ?column?
--------------+----------
 null         | t
(1 row)

分类

JSON系统函数

另请参阅

json_typeof()

反馈

提交任何关于 "jsonb_typeof()" 的评论、建议或更正 此处