【问题标题】:How to read multiple objects from text file using node?如何使用节点从文本文件中读取多个对象?
【发布时间】:2020-11-03 11:10:27
【问题描述】:

我有一个文本文件,其中包含写入其中的多个对象。我需要在文本文件中将fetch 的所有对象都设置为JSON。我该怎么办?

我的文件中的数据:

{"events":[...] },{"events":[....]},{},{}....

我试着把它读成:

fs.readFile('gcyoi6.txt', function (err, data) {
    if (err) throw err;
    data =data.toString(); 
    console.log(data)
  });

它将数据作为字符串提供。但我需要它作为JSON 对象

提前致谢!

【问题讨论】:

  • const obj = JSON.parse( jsonString );
  • @ippi SyntaxError: Unexpected token , in JSON

标签: javascript node.js json reactjs file-handling


【解决方案1】:

您可以将您在文件中获取的数据传递给JSON.parse 函数,该函数将从文件中获取的字符串转换为您的.txt 文件中内容的JSON 表示形式。

fs.readFile('gcyoi6.txt', function (err, data) {
    if (err) throw err;
    data =JSON.parse(data);
    console.log(data)
});

这是一个可以转换为 JSON 的有效文本

const validJSONString = JSON.parse(`[{"event":"name"},{"event": "test"}]`);

console.log(validJSONString);

这是一个糟糕的 JSON

const invalidJSONString = JSON.parse(`[{"event":"name"},{'event': 'test'}]`); // Throw an error error

【讨论】:

  • SyntaxError: Unexpected token , in JSON
  • 你应该检查你的.txt文件的内容是否正确地格式化为JSON,我的意思是你应该使用双引号而不是单引号
  • 我想,你没有注意到我文件中的内容。它们不在数组中!
  • @gomathi_meena 把它们放在一个数组中而不是破坏 JSON?或者如果实在无法更改文件格式,JSON.parse("[" + data + "]")
  • 通过查看您在问题{"events":[...] },{"events":[....]},{},{}.... 中提供的内容的形状作为示例。我假设您的 .txt 文件包含 Events Object 的列表,它们是某种形状。所以喜欢一个列表,它们应该用括号括起来,或者你可以使用一些代码来分隔主题,方法是使用 String.prototype.split 方法,这将返回一个 Array of txt,你可以将它传递给 JSON.parse
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-14
  • 1970-01-01
  • 2016-08-15
相关资源
最近更新 更多