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