PostgreSQL to_jsonbb() 函数使用指南

PostgreSQL to_jsonb() 函数将一个 SQL 值转为 JSONB 值并返回。

to_jsonb() 语法

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

to_jsonb(any_value) -> JSONB

参数

any_value
必需的。 要转为 JSON 的任意值。

返回值

PostgreSQL to_jsonb() 函数返回一个从一个任意 SQL 类型的值转换而来的 JSONB 值。

to_jsonb() 示例

简单示例

本示例展示了如何使用 PostgreSQL to_jsonb() 函数将一个 SQL 值转为 JSONB 值。

SELECT
    to_jsonb(20) AS "to_jsonb(20)",
    to_jsonb('x'::text) AS "to_jsonb('x'::text)",
    to_jsonb(true) AS "to_jsonb(true)",
    to_jsonb(false) AS "to_jsonb(false)";
)";
to_jsonb(20) | to_jsonb('x'::text) | to_jsonb(true) | to_jsonb(false)
-------------+--------------------+---------------+----------------
 20          | "x"                | true          | false

数组

本示例展示了如何使用 PostgreSQL to_jsonb() 函数将一个 SQL 数组转为 JSONB 数组。

SELECT to_jsonb(array[[1, 2], [3, 4]]);
    to_jsonb
---------------
 [[1,2],[3,4]]

这与 array_to_jsonb() 函数几乎完全相同。

复合类型

本示例展示了如何使用 PostgreSQL to_jsonb() 函数将一个 SQL 复合类型的值转为 JSONB 对象。

SELECT to_jsonb(row('Tom', 20, 'He likes sports.'));
                   to_jsonb
----------------------------------------------
 {"f1":"Tom","f2":20,"f3":"He likes sports."}

这里,我们使用 row 表达式构造了一个复合类型的值 row('Tom', 20, 'He likes sports.')。这个复合的类型的值包含了 3 个元素: 'Tom', 20'He likes sports.'

当将复合类型的值转为 JSON 对象时,row_to_jsonb() 函数自动生成了对象中的键,格式为 fn,其中 n 是一个数字,从 1 开始递增。

这与 row_to_jsonb() 函数几乎完全相同。