javascript - 将 NodeJs MySQL 结果转换为可访问的 JSON 对象

标签 javascript mysql json node.js

我想从我的数据库中获取一些数据。示例:

  getCarIds: function (callback) {
    db.query("SELECT Id FROM Cars;",
      function (err, result) {
        if (err) throw err;

        result = JSON.stringify(result);

        var cars = [];

        for (var i = 0; i < result.length; i++) {
          var currentCar = result[i];
          var carId = currentCar.id;
          cars.push(carId);
        }

        callback(cars);
      });
  }

我想将所有 id 存储到一个数组中。喜欢

cars = [1,2,3,4,5];

结果返回这个

[ RowDataPacket { Id: '1' },
  RowDataPacket { Id: '2' },
  RowDataPacket { Id: '3' } ]

所以我尝试通过编写来转换它

result = JSON.stringify(result);

这让我返回

[{"Id":"1"},{"Id":"2"},{"Id":"3"}]

当我想通过写入来访问这个对象时

结果[0]

我明白

[

很明显

result[0].id

将返回

undefined

如何从对象中获取所有 id?

最佳答案

假设您有一个来自 mysql 的 RowDataPacket 结果数组,名为 results。您可以使用 Object.assign()。例如,如果您想将第一个元素转换为常规对象:

var normalObj = Object.assign({}, results[0]);

或者如果您希望将整个数组转换为普通对象:

var normalResults = results.map((mysqlObj, index) => {
    return Object.assign({}, mysqlObj);
});

或更紧凑的语法:

results = results.map(v => Object.assign({}, v));

关于javascript - 将 NodeJs MySQL 结果转换为可访问的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48782788/

相关文章:

c# - 从 C# 匿名对象获取属性

ios - 如何快速获取json对象的数组

javascript - 将模板加载到 View AngularJS 后执行 javascript

javascript - Kendo - Reccurrence Editor - 更改日期格式导致值不回发到服务器

javascript - Ajax 响应是文件下载

mysql - 转换mysql数据库支持多国语言

javascript - jquery,如何在确定元素没有同时动画后对其进行动画处理

php - 当某些参数可能为NULL时,如何在php文件中编写mySQL搜索查询?

mysql - 编写不使用联接并使用子查询的查询

Java Gson java.text.ParseException : Unparseable date