如何在JavaScript中访问JSON或对象的特定属性
我正在使用express和node xlsx模块在Nodejs中制作一个应用程序,我想做的是让用户能够上传一个xlsx文件(它必须有两列的特定格式),然后服务器读取它并对文件的每一行进行处理 (我的测试文件示例,分别为A列和B列): 为了做到这一点,我决定使用node xlsx模块,在读取包含以下代码的文件后:如何在JavaScript中访问JSON或对象的特定属性,javascript,node.js,json,object,Javascript,Node.js,Json,Object,我正在使用express和node xlsx模块在Nodejs中制作一个应用程序,我想做的是让用户能够上传一个xlsx文件(它必须有两列的特定格式),然后服务器读取它并对文件的每一行进行处理 (我的测试文件示例,分别为A列和B列): 为了做到这一点,我决定使用node xlsx模块,在读取包含以下代码的文件后: var xlsx = require('node-xlsx'); router.post('/enviar', upload.single("lista"),(req,
var xlsx = require('node-xlsx');
router.post('/enviar', upload.single("lista"),(req, res, next) =>{
//dir is the path of the xlsx file
const workSheetsFromFile = xlsx.parse(dir);
res.send(workSheetsFromFile);
});
返回一个如下所示的对象:
[
{
"name": "Hoja1",
"data": [
[
"Johny Wilson",
"jonhny@email.com"
],
[
"Andrew Jehnsen",
"andrew@example.com"
],
[
"Billy Soon",
"billy@mail.com"
]
]
}
]
如您所见,模块返回所有文件的数据,包括工作表的详细信息(在本例中只有一个),我只想访问“数据”数组,该数组包含用于处理这些数据的键和值
我已经尝试在数据数组上循环使用:
workSheetsFromFile.data.forEach((element) =>{
console.log(element);
});
及
及
但它们都只是向我发送了一个错误,如“无法读取未定义的属性‘forEach’”或“数据未定义”:(
目前,我正在检查的几行代码用于迭代数据数组并打印每一对键和值,因此,一旦修复了,在这个循环中处理每一个键和值,以便发送自动邮件。您在这里看到的似乎是一个对象数组,而不是对象本身 试一试
如果你有更多的元素,考虑首先循环数组,然后提取数据
你这里似乎是一个对象数组,而不是一个对象本身!const structuredData = workSheetsFromFile[0].data.map(res => {
return res
});
试一试
如果你有更多的元素,考虑首先循环数组,然后提取数据< /p>可能的重复的肯定的复制。不好的代码实践,但它工作完美。当然。不好的代码实践,但它也完美地工作。
const structuredData = workSheetsFromFile[0].data.map(res => {
return res
});
workSheetsFromFile['data'].forEach((element) =>{
console.log(element);
});
workSheetsFromFile[0].data.forEach((element) => {
console.log(element);
});
const structuredData = workSheetsFromFile[0].data.map(res => {
return res
});
workSheetsFromFile.forEach(sheet => {
//access data
console.log(sheet.data)
//or
sheet.data.forEach(data => {
//access each data
console.log(data)
})
})