PostgreSQL jsonb_object_keys() 函数使用指南

PostgreSQL jsonb_object_keys() 函数返回指定的 JSONB 对象中的顶层键的集合。

jsonb_object_keys() 语法

这是 PostgreSQL jsonb_object_keys() 函数的语法:

jsonb_object_keys(any_object JSONB) -> SETOF TEXT

参数

any_object
必需的。 一个 JSONB 对象。

返回值

PostgreSQL jsonb_object_keys() 函数返回一个文本的集合(SETOF),它包含了指定的 JSONB 对象中的所有的顶层的键。

jsonb_object_keys() 示例

本示例展示了如何使用 PostgreSQL jsonb_object_keys() 函数获取一个 JSONB 对象的所有顶层的键。

SELECT jsonb_object_keys('{"name": "Tom", "age": 20, "hobbies": ["sports", "cars"]}');
 jsonb_object_keys
------------------
 name
 age
 hobbies

由于 jsonb_object_keys() 函数返回值为 SETOF 类型,因此您可以在 SELECT * FROM 语句中使用 jsonb_object_keys()

SELECT 
    * 
FROM 
    jsonb_object_keys('{"name": "Tom", "age": 20, "hobbies": ["sports", "cars"]}')
    AS x(keys);
  keys
---------
 name
 age
 hobbies

这里返回了 2 列 keyvalue,分别对应了 JSONB 对象中键值对的键和值。

注意,这里的 value 列的类型是 JSONB