Postgres 从两个 json 对象创建一个嵌套的 json 对象

Postgres create a nested json object from two json objects

我已经形成了两个 json 对象,其中包含 2 个单独的查询,如下所示。

查询 1:select json_build_object('v', 'v1', 'vname', 'vname1','user', 'user1') 它给出了下面的 json 对象:

{"v" : "v1", "vname" : "vname1", "user" : "user1"}

查询 2:select json_build_object('id', 'is1','des' , 'des1','trg' , 'trg1','stat' , 'stat1') 下面给出 json 对象:

{"id" : "is1", "des" : "des1", "trg" : "trg1", "stat" : "stat1"}

我的要求是我想使用上面的 2 个 json 对象创建一个 json,如下所示:

{"t1":{"v" : "v1", "vname" : "vname1", "user" : "user1"},"t2":{"id" : "is1", "des" : "des1", "trg" : "trg1", "stat" : "stat1"}}

我已经尝试 json_build_object 将上述查询作为内联查询,但它不起作用。

非常感谢您。

postgres 绝对支持对 jon_build_object 的嵌套调用。

这是一个使用问题中的两个语句生成您正在寻找的输出的语句。

select json_build_object(
    't1', json_build_object('v', 'v1', 'vname', 'vname1','user', 'user1'),
    't2', json_build_object('id', 'is1','des' , 'des1','trg' , 'trg1','stat' , 'stat1')
);

json_build_object
------------------
 {"t1" : {"v" : "v1", "vname" : "vname1", "user" : "user1"}, "t2" : {"id" : "is1", "des" : "des1", "trg" : "trg1", "stat" : "stat1"}}