我有一个对象的.log文件。如何将它们转换为JSON对象,以便在Javascript中进行迭代?
这是我需要转换的.log文件的一个示例。我正在使用Node我有一个对象的.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
{"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
同步运行,而不是异步运行。它不接受回调。听起来您正在处理的日志文本与您在问题中发布的文本不匹配。