Node.js:读取文件并将string作为数组放入数组中

我正在做一些项目,我需要阅读一些文件,并把数组分割(用\ n – 新行)string作为数组。 这意味着读取文件的输出与fs.readFileSync(filepath, 'utf8').split('\n'); 是string,我需要将其转换为数组,但有问题,因为我不知道如何。 有一些input数据的例子:

 [[164,17567,160,[]],[166,8675,103,[]], [[164,17567,160,[]],[166,8675,103,[]], [[164,17567,160,[]],[166,8675,103,[]], [[164,17567,160,[]],[166,8675,103,[]] 

我试图把它与循环,但我不能把它从string转换成数组,不知怎的,输出变成这样:

 "[[164,17567,160,[]],[166,8675,103,[]]", "[[164,17567,160,[]],[166,8675,103,[]]", "[[164,17567,160,[]],[166,8675,103,[]]", "[[164,17567,160,[]],[166,8675,103,[]]" 

我build议你继续用换行符分割,然后重新组合成一个没有换行符的单个string,最后使用JSON.parseparsing。

 var lines = fs.readFileSync(filepath, 'utf8').split('\n'); var rawData = ''; for (var l in lines){ var line = lines[l]; rawdata += line; } var data = JSON.parse('[' + rawdata + ']'); 

然而! 它似乎(除非是一个错字),每一行都有一个额外的开放方括号。 这些必须在parsing之前被删除,如果你有任何控制,最好从源数据中删除:)

另外,为了使JSON有效,你必须把整个东西包装在“[]中”,正如我上面所显示的那样。