PostgreSQL jsonb_build_object() 函数使用指南
PostgreSQL jsonb_build_object() 函数从可变的参数列表(由交替的交替的键和值组成)中创建 JSONB 对象并返回。
此函数与 json_build_object() 函数类似。
jsonb_build_object() 语法
这是 PostgreSQL jsonb_build_object() 函数的语法:
jsonb_build_object(VARIADIC any_value) -> JSONB
参数
any_value- 必需的。 是一个可变的参数列表。您可以传入任意类型的任意数量的参数。按照约定,参数由交替的键和值组成。您必须提供偶数个参数。
 
返回值
PostgreSQL jsonb_build_object() 函数返回一个 JSONB 对象,他从由交替的键和值组成的可变的参数列表构建而来。
jsonb_build_object() 函数会评估可变参数列表中的每个参数,其中,作为键的参数被强制转为文本,作为值的参数按照 to_jsonb() 转为 JSONB 值。
如果可变参数列表中的参数的数量不是偶数, PostgreSQL 会给出一个错误。
jsonb_build_object() 示例
本示例展示了如何使用 PostgreSQL jsonb_build_object() 函数构建一个 JSONB 对象。
SELECT jsonb_build_object(1, 'a', true, row(2, 'b', false));
                  jsonb_build_object
-------------------------------------------------------
 {"1": "a", "true": {"f1": 2, "f2": "b", "f3": false}}这里,我们在函数中使用了 4 个参数: 1, 'a', true, row(2, 'b', false)。 其中 1 和 true 为键, 'a' 和 row(2, 'b', false) 为值。
首先,jsonb_build_object() 函数将每个参数转为对应的值:
1为键,被转为"1"'a'为1的值,被转为"a"true为键,被转为"true"row(2, 'b', false)为true的值,被转为{"f1":2,"f2":"b","f3":false}}
然后,jsonb_build_object() 函数返回由所有的键值组成的 JSONB 对象: {"1" : "a", "true" : {"f1":2,"f2":"b","f3":false}}。