在NodeJS中,将数据库查询输出转换为Json格式

时间:2017-12-13 20:47:08

标签: angularjs json node.js

这是我的代码:

oracledb.getConnection(
  {
    user          : "user",
    password      : "password",
    connectString : "gtmachine:1521/sde1"
  },
  function(err, connection)
  {
    if (err) { console.error(err); return; }
    connection.execute(
      "SELECT filetype, filetypeid from filetype where filetypeid < 6",
      function(err, result)
      {
        if (err) { console.error(err); return; }
         response =  result.rows;
         console.log(response);
         res.end(JSON.stringify(response));
      });

这是输出

[["Ascii Text",1],["Binary",2],["Graphics - GIF",3],["Graphics - JPEG",4],["HTML",5]]

但我的前端angularjs期待这种格式的东西:

[{"filetype":"Ascii Text","filetypeid":1},{"filetype":"Binary","filetypeid":2}]

有没有人知道转换它的标准方法是什么?

1 个答案:

答案 0 :(得分:0)

这些会将您的数组数组转换为对象数组:

&#13;
&#13;
var results = [["Ascii Text",1],["Binary",2],["Graphics - GIF",3],["Graphics - JPEG",4],["HTML",5]];

results = results.map(
  function(item) {
    return {
      filetype: item[0],
      filetypeid: item[1]
    }
  }
);

console.log(results);
&#13;
&#13;
&#13;

在ES6中:

&#13;
&#13;
var results = [["Ascii Text",1],["Binary",2],["Graphics - GIF",3],["Graphics - JPEG",4],["HTML",5]];

results = results.map(item => ({filetype: item[0], filetypeid: item[1]}));

console.log(results);
&#13;
&#13;
&#13;