代码之家  ›  专栏  ›  技术社区  ›  DoArNa

如何获得JSON格式的查询结果?

  •  0
  • DoArNa  · 技术社区  · 7 年前

    我正在node.js和postgres数据库上构建lambda。当我使用以下方法查询数据库时:

    client.query('SELECT name, age FROM user GROUP BY name')
    

    我得到一个物体,像:

    [['john', 35], ['mary', 26]]
    

    我想要的是在有效的JSON上有这样的内容:

    [{"name" : "john", "age" : 35}, {"name" : "mary", "age" : 25}]
    

    我可以用什么好的库或函数来做这个映射?我尝试了json.parse和json.stringify,但没有运气。 当然,我可以自己编写一个函数来构建一个JSON对象,并用来自数据库的值填充它,但是我想看看是否有更好的方法。

    非常感谢你的帮助

    2 回复  |  直到 7 年前
        1
  •  0
  •   Kaushik Nayak    7 年前

    你可以利用Postgres array_to_json array_agg 功能。

    select array_to_json(array_agg(user_)) from user_;
    

    这产生:

    [{"name":"john","age":35},{"name":"mary","age":26}]
    

    Demo

        2
  •  0
  •   Shams Nahid    7 年前

    您可以遍历数组并使 json 对象

    我在这里放了一个示例代码

    const myJsonObj = [];
    const output = [['john', 35], ['mary', 26]];
    
    for (let index=0; index<output.length; index++) {
        const user = output[index];
        const name = user[0];
        const age = user[1];
        myJsonObj.push({
            name: name,
            age: age,
        });
    }
    
    console.log(myJsonObj);
    

    你提到,它将产生所需的输出。

    [姓名:'John',年龄:35,姓名:'Mary',年龄:26]