jsonb_object() 是一个系统函数,用于从单个文本数组或包含键和值的成对数组构建 jsonb 对象。
jsonb_object() 在 PostgreSQL 9.5 中添加。
用法
jsonb_object ( text[] ) → jsonb
jsonb_object ( keys text[], values text[] ) → jsonb
使用第一种变体时,提供的数组必须是
- 单维的,具有偶数个成员,由交替的键/值对组成
- 二维的,其中内部数组由交替的键/值对组成
使用第二种变体时,提供两个数组,第一个包含键,第二个包含匹配的值。
变更历史
- PostgreSQL 9.5
- 添加于 (commit 7e354ab9)
示例
jsonb_object() 的基本用法示例
postgres=# SELECT jsonb_object('{foo, 1, bar, 2, baz, qoo}');
jsonb_object
----------------------------------------
{"bar": "2", "baz": "qoo", "foo": "1"}
(1 row)
提供一个二维数组
postgres=# SELECT jsonb_object('{{foo, 1}, {bar, 2}, {baz, qoo}}');
jsonb_object
----------------------------------------
{"bar": "2", "baz": "qoo", "foo": "1"}
(1 row)
提供由键和匹配值组成的两个数组
postgres=# SELECT jsonb_object('{foo, bar, baz}', '{1, 2, qoo}');
jsonb_object
----------------------------------------
{"bar": "2", "baz": "qoo", "foo": "1"}
(1 row)
参考资料
- PostgreSQL文档: JSON创建函数
另请参阅
jsonb_object_agg(), jsonb_object_keys(), json_object()
