在 postgresql 中识别 json 类型

Posted

技术标签:

【中文标题】在 postgresql 中识别 json 类型【英文标题】:Identify json type in postgresql 【发布时间】:2021-12-02 04:26:34 【问题描述】:

是否有一个函数或方法可以轻松确定 postgresql 中的 json 数据类型?

例如:

select key, value, pg_typeof(value) FROM jsonb_each('"foo":1,"bar":"2","ack":[1,2,3]'::jsonb)

返回:

key value   pg_typeof
ack [1, 2, 3]   jsonb
bar "2" jsonb
foo 1   jsonb

如何确定 ack 的值是一个数组,bar 是一个字符串,而 foo 是一个数字?

【问题讨论】:

【参考方案1】:

从这里JSON operators,jsonb_typeof

 select key, value, jsonb_typeof(value) FROM jsonb_each('"foo":1,"bar":"2","ack":[1,2,3]'::jsonb);
 key |   value   | jsonb_typeof 
-----+-----------+--------------
 ack | [1, 2, 3] | array
 bar | "2"       | string
 foo | 1         | number

【讨论】:

现在我觉得自己很愚蠢。感谢您的帮助!

以上是关于在 postgresql 中识别 json 类型的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中使用 PostgreSQL 9.2 JSON 数据类型?

如何在 Postgresql 中添加、更新和删除 Json 数据类型?

在 Flask-sqlalchemy 和 Postgresql 中使用 JSON 类型

PostgreSQL 中 JSON 数据类型的大小限制

DataGrip 无法识别 PostgreSQL 数据类型

如何在 laravel 中获取 PostgreSQL 的 JSON 类型数据?