javascript - Node.js:文件读取并将字符串作为数组放入数组

标签 javascript arrays string file node.js

我正在做一些项目,我需要读取一些文件并将拆分的(使用\n - 新行)字符串作为数组中的数组。这意味着使用 fs.readFileSync(filepath, 'utf8').split('\n'); 读取文件的输出 是字符串,我需要将它转换成数组,但有问题,因为我不知道如何。有一些输入数据的例子:

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

我试图将它与 for 循环放在一起,但我无法以某种方式将它从字符串转换为数组,输出变成这样:

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

最佳答案

我建议您继续按换行符拆分,然后重新组合成一个没有换行符的字符串,最后使用 JSON.parse 进行解析。

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 + ']');

但是!看起来(除非是拼写错误)每一行都有一个额外的左方括号。这些必须在解析之前删除,如果您可以控制它,最好从源数据中删除:)

此外,要使其成为有效的 JSON,您必须将整个内容包装在“[]”中,如上所示。

关于javascript - Node.js:文件读取并将字符串作为数组放入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15493879/

相关文章:

javascript - 如何绕过express的错误处理

java二维数组转字符串数组

java - 文件/扫描仪简单解析问题

python - 通过索引在矩阵中赋值

java - 用于确定字符串是否为单个重复字符的正则表达式

C 字符串数组 strtok()

javascript - 为什么在定义带引号或不带引号的 JavaScript 对象文字时会有所不同?

javascript - 删除所有选定的选项

javascript - 满足所有要求后显示警报

java - 创建数组时堆空间不足