在PostgreSQL中,如何使用JSONB将列表添加到现有JSON对象

时间:2019-02-26 14:48:03

标签: json jsonb postgresql-9.6

此代码:

do
$j$
declare arr text[]; i int; num text; obj jsonb; jb_arr jsonb[];

begin

        jb_arr = array_append(jb_arr, jsonb_build_object('k', 'acg', 'v', 'val'));
        jb_arr = array_append(jb_arr, jsonb_build_object('k', 'xyz', 'v', 'xxx'));

        obj = (select '{ "cmds":[]}'::jsonb);

        RAISE NOTICE '%', to_jsonb(jb_arr); 

        RAISE NOTICE '%', obj;

end;
$j$

输出以下内容:

[{"k": "acg", "v": "val"}, {"k": "xyz", "v": "xxx"}]
{"cmds": []}

我如何合并这两个,以便最终得到这个结果:

{"cmds": [{"k": "acg", "v": "val"}, {"k": "xyz", "v": "xxx"}]}

谢谢!

1 个答案:

答案 0 :(得分:0)

方法如下:(选择json_build_object('cmds',jb_arr));