将行读入JSON对象

时间:2015-07-07 09:21:17

标签: javascript json node.js

我正在使用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”
  }

}

提前致谢

1 个答案:

答案 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));