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}}
。