PostgreSQL jsonb_build_array() 函数使用指南

PostgreSQL jsonb_build_array() 函数从可变的参数列表中创建一个可能是异构类型的 JSONB 数组并返回。

此函数与 json_build_array() 函数类似。

jsonb_build_array() 语法

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

jsonb_build_array(VARIADIC any_value) -> JSONB

参数

any_value
必需的。 是一个可变的参数列表。您可以传入任意类型的任意数量的参数。

返回值

PostgreSQL jsonb_build_array() 函数返回一个可能是异构类型的 JSONB 数组,其中的参数由可变的参数列表转换而来。

jsonb_build_array() 函数会评估可变参数列表中的每个参数,然后使用 to_jsonb() 将每个参数执行转为 JSONB 值后放入最终返回的数组中。

jsonb_build_array() 示例

本示例展示了如何使用 PostgreSQL jsonb_build_array() 函数构建一个 JSONB 数组。

SELECT jsonb_build_array(1, 'a', true, row(2, 'b', false));
                 jsonb_build_array
---------------------------------------------------
 [1, "a", true, {"f1": 2, "f2": "b", "f3": false}]

这里,我们在函数中使用了 4 个参数: 1, 'a', true, row(2, 'b', false)

首先,jsonb_build_array() 函数按照 to_jsonb() 将每个参数转为 JSONB 值:

  • to_jsonb(1) 返回 1
  • to_jsonb('a'::text) 返回 "a"
  • to_jsonb(true) 返回 true
  • to_jsonb(row(2, 'b', false)) 返回 {"f1":2,"f2":"b","f3":false}

然后,jsonb_build_array() 函数将上面的返回值组装成 JSONB 数组 [1, "a", true, {"f1":2,"f2":"b","f3":false}] 后返回。