postgresql build_json_object返回

时间:2017-07-20 00:43:19

标签: json postgresql

postgesql将json_build_object作为每个分组json数组的父级返回,如下所示:

SELECT json_build_object(source, json_agg(stories.*))
FROM stories
GROUP BY stories.source
ORDER BY source;

Postgresql返回" json_build_object"作为关键。 是否可以用组返回的stories.source值替换?

 stories:
  CNN: [],
  FOX: []...

最佳解决方案是这样的回应:

var data={

       name:"dsd",
       work: "abcd",
       address:{
          street:"wewe 32",
          apt: 12,
          city: "ca",
          geo:{
             lat: 23.4332,
             lng: 132.232
          },
          hobbies:["play","sing"]
       }        

 }

我确定我错过了在Postgresql中返回JSON的最佳做法...

1 个答案:

答案 0 :(得分:2)

必须有一种方法可以在SQL中执行此操作,但由于现在缺少它,您可以将stories属性转换为正确的对象:

function convert(stories) {
    const res = {};
    for (let i = 0; i < stories.length; i++) {
        const obj = stories[i].json_build_object;
        const name = Object.keys(obj)[0];
        res[name] = obj[name];
    }
    return res;
}