我正在使用node.js并想要读取包含" ="的行。进入json对象并将其输出为json对象。
此代码读取行并正常工作:
var lazy = require("lazy"),
fs = require("fs");
new lazy(fs.createReadStream('sysctl.conf')).lines.forEach(function(line){
if(line.toString().indexOf("=") > -1) {
sysArray.push(line);
console.log("Contains =" + line);
}
else {
// console.log("Not contain = " + line)
}
});
我目前正在将这些项目推送到数组,但我认为由于时间延迟,当我运行此代码时,数组似乎没有任何对象:
var arrayLength = sysArray.length;
console.log("Array Length:" + arrayLength)
for (var i = 0; i < arrayLength; i++) {
console.log(sysArray[i]);
}
基本上我想创建一个类似于此的JSON对象:
这是一个示例行: net.ipv4.conf.default.rp_filter = 1
{
“sysctl”: {
“net.ipv4.conf.default.rp_filter”: “1”,
“morevalues”: “morevalues”
}
}
提前致谢
答案 0 :(得分:0)
您可以使用split:
var myObj = {};
new lazy(fs.createReadStream('sysctl.conf')).lines.forEach(function(line) {
var tmp = line.split('=');
// if line = "my.conf=1" then tmp = ["my.conf", "1"];
myObj[tmp[0]] = tmp[1];
});
console.log(JSON.stringify(myObj));