Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我有一个对象的.log文件。如何将它们转换为JSON对象,以便在Javascript中进行迭代?_Javascript_Json_Node.js_Fs - Fatal编程技术网

我有一个对象的.log文件。如何将它们转换为JSON对象,以便在Javascript中进行迭代?

我有一个对象的.log文件。如何将它们转换为JSON对象,以便在Javascript中进行迭代?,javascript,json,node.js,fs,Javascript,Json,Node.js,Fs,这是我需要转换的.log文件的一个示例。我正在使用Node {"test": "data", "test1": 123, "foo": "feel me??"} {"test": "data", "test1": 123, "foo": "feel me??"} {"test": "data", "test1": 123, "foo": "feel me??"} 我正在使用此代码导入它 let data = fs.readFileSync(log_path, 'utf8

这是我需要转换的.log文件的一个示例。我正在使用Node

    {"test": "data", "test1": 123, "foo": "feel me??"}
    {"test": "data", "test1": 123, "foo": "feel me??"}
    {"test": "data", "test1": 123, "foo": "feel me??"}
我正在使用此代码导入它

let data = fs.readFileSync(log_path, 'utf8', function(err, data){
  if (err) throw err;
  let tweets = data.split('\n').map(line => JSON.parse(line));

  return tweets;

  fs.close(data, (err) => {
    console.log(err);
  })
})
正如您所看到的,它没有用逗号分隔,因此不是JSON格式。我正在尝试读取文件,然后将其拆分为新行,但这似乎不起作用

假设
“感觉我??”
是一个属性,您可以
将这些行拆分,然后
将它们映射到一个对象数组:

const text=`{“test”:“data”,“test1”:123,“foo”:“feel me??”}
{“test”:“data”,“test1”:123,“foo”:“feel me??”}
{“test”:“data”,“test1”:123,“foo”:“feel me??”}`;
常量arrOfObjs=text.split('\n')
.map(line=>JSON.parse(line));

控制台日志(arrOfObjs)
就我个人而言,我使用
读取最后几行
包仅获取我的
日志
文件的最后几行

为了让它工作起来,我不得不从接受的答案中稍微修改代码,这对我自己来说是一个很大的帮助。我将在这里加上它,以防有人在与类似的问题作斗争

readLastLines.read('info.log', 10)
      .then((lines) => {
        const arrOfStringObjs = lines.split('\n')
        let arrOfObjs = []
        arrOfStringObjs.forEach(strObj => {
          if (strObj !== undefined && strObj !== null && strObj !== '') {
            arrOfObjs.push(JSON.parse(strObj))
          }
        });
        console.log(arrOfObjs)

希望有帮助。

当我在.log文件上使用fs.readFileSync时,它似乎没有返回一个可以拆分的字符串。当你第一次提到这一点时,你应该编辑你的问题以澄清这一点,然后发布你的代码编辑。很抱歉我认为这意味着我正在以这种格式读取.log文件。请参见编辑-
readFileSync
同步运行,而不是异步运行。它不接受回调。听起来您正在处理的日志文本与您在问题中发布的文本不匹配。