Javascript 使用toJSON()访问对象的属性

Javascript 使用toJSON()访问对象的属性,javascript,json,node.js,Javascript,Json,Node.js,listData:使用mongoose从MongoDB获取数据 但我不明白为什么会这样 [如果使用toJSON,则确定]尽管行是JSON格式 Mongoose查询将返回MongooseDocuments,而不是普通JavaScript对象 尝试使用以下方法: DataMaster.find{table:1}.sort'-created.lean.execlistData从何而来?我这样问是因为json在默认情况下不是一个对象,而是一个字符串。在javascript中,它必须被解析为json对象。

listData:使用mongoose从MongoDB获取数据

但我不明白为什么会这样

[如果使用toJSON,则确定]尽管行是JSON格式


Mongoose查询将返回MongooseDocuments,而不是普通JavaScript对象

尝试使用以下方法:


DataMaster.find{table:1}.sort'-created.lean.exec

listData从何而来?我这样问是因为json在默认情况下不是一个对象,而是一个字符串。在javascript中,它必须被解析为json对象。看起来输出不是json格式,它是一个JS对象。谢谢关心@Jeroen listData:使用mongoose DataMaster从MongoDB获取。查找{table:1}.sort'-created'。谢谢关心@蒂姆。如果它是一个JS对象,那么可以通过row.item1获取值?这就是您在示例中编写的对象。别猜了,检查一下类型。我用的是精益方法。不需要使用对象的toJSON访问属性也可以。因为Mongoose查询将返回MongooseDocuments。谢谢你help@TinhNQ很高兴这有帮助!快乐编码
listData.forEach(function (row, index) {
    console.log(row);       --> output JSON format { _id: 5b0bbae16fcc45381a679186, item1: 'item1', item2: 'item2' }
    console.log(row.item1); --> output undefined

    // If using toJSON() then OK
    var json = row.toJSON();
    console.log(json.item1); --> output item1
});