json_typeof()
是一个系统函数,返回顶级 json
值的类型,以文本字符串形式表示。
json_typeof()
在 PostgreSQL 9.4 中添加。
用法
json_typeof (json
) →text
将返回以下值之一
object
array
string
number
boolean
null
请注意,这些值,尤其是在 null
的情况下,并非与相应的SQL数据类型直接等价。
更改历史记录
- PostgreSQL 9.4
- 添加(提交 4d212bac)
示例
使用 json_typeof()
确定各种 json
值的类型
postgres=# SELECT json_typeof('{"foo":[]}'::json); json_typeof ------------- object (1 row) postgres=# SELECT json_typeof('[]'::json); json_typeof ------------- array (1 row) postgres=# SELECT json_typeof('"foo"'::json); json_typeof ------------- string (1 row) postgres=# SELECT json_typeof('123'::json); json_typeof ------------- number (1 row) postgres=# SELECT json_typeof('false'::json); json_typeof ------------- boolean (1 row) postgres=# SELECT json_typeof('null'::json); json_typeof ------------- null (1 row)
请注意,任何数值都映射到 number
类型
postgres=# SELECT json_typeof(123::int::text::json); json_typeof ------------- number (1 row) postgres=# SELECT json_typeof(1.23::numeric::text::json); json_typeof ------------- number (1 row)
json
null
不等价于SQL NULL
postgres=# SELECT json_typeof('null'::json), json_typeof(NULL::json) IS NULL; json_typeof | ?column? -------------+---------- null | t (1 row)
参考文献
- PostgreSQL文档: JSON处理函数