使用JSON数据填充Javascript数组

时间:2016-07-26 15:32:32

标签: javascript arrays json node.js

我正在尝试将大量JSON文件加载到稍后要引用的数组中,但Node一直声明它们未定义。我有以下代码:

var myarray = [];

(...)

var loading_num = 001; // will be incremented in a loop to load data
myarray[loading_num] = fs.readFileSync("data/" + loading_num);

(...)

var reference_num = "001"; // the number being used to pull the appropriate record

(...)

console.log(myarray[reference_num].name); // just testing to attempt to decipher why it doesn't work, I'll actually be using the data obviously

每个JSON文件都有一个名为name的值,我还没有实现加载所有这些的逻辑,因为我仍然只是试图让它工作。

我是否误解了Javascript数组或对象?我究竟做错了什么?有很多文件,它们的数量可能会有所不同,所以我必须以类似的方式加载它们。

2 个答案:

答案 0 :(得分:1)

您应该解析文件内容,以便将原始数据转换为JavaScript对象。

myarray[001] = JSON.parse(fs.readFileSync("data/001"));

答案 1 :(得分:0)

首先。 fs.readFileSync读取任意文件。如果您知道您的文件是JSON并且您想将其转换为js,则需要使用JSON.parse对其进行解析。

然后0011,如果您希望它是一个用引号'001'包裹它的字符串

数组索引从0开始。

var myarray = [];
myarray.push(JSON.parse(fs.readFileSync("data/001")));
console.log(myarray[0].name);

var myarray = {}; // use object
myarray['001'] = JSON.parse(fs.readFileSync("data/001"));
var reference_num = "001";
console.log(myarray[reference_num].name);