Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中访问JSON或对象的特定属性_Javascript_Node.js_Json_Object - Fatal编程技术网

如何在JavaScript中访问JSON或对象的特定属性

如何在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,

我正在使用express和node xlsx模块在Nodejs中制作一个应用程序,我想做的是让用户能够上传一个xlsx文件(它必须有两列的特定格式),然后服务器读取它并对文件的每一行进行处理

(我的测试文件示例,分别为A列和B列):

为了做到这一点,我决定使用node xlsx模块,在读取包含以下代码的文件后:

    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)
   })
})