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