2

我有一个包含 json 对象的 json 文件,请问如何逐行读取 json 对象。这是使用 node.js 读取 json 文件的最佳方式吗,请原谅我的问题,只是一个 node.js 新手

我的 json 文件只包含几行 json 对象:

file.json
{"name":"user1"},
{"name":"user2"},
{"name":"user3"}

我正在尝试使用

app.get('/s',function(req,res){
  var fs = require('fs');
var file = __dirname + '/file.json';


    fs.readFile(file, 'utf8', function (err, data) {
      if (err) {
        console.log('Error: ' + err);
        return;
      }

      data = JSON.parse(data);

      console.dir(data);
    });
    });

我收到一个错误,上面写着“意外的令牌 {”就在第二行“,坦克

//EDIT 原来我的 Json 文件是无效的,因为 readFile 读取整个文件,我通过将对象放在一个数组中来更改它:

file.json
[
{"name":"user1"},
{"name":"user2"},
{"name":"user3"}
]

然后这段代码读取整个文件(数组)

var fs = require('fs');
var file = __dirname + '/file.json';

fs.readFile(file, 'utf8', function (err, data) {
  if (err) {
    console.log('Error: ' + err);
    return;
  }

  data = JSON.parse(data);

  data.forEach(function(user){ 
    console.log(user.name);
  })

});
4

1 回答 1

6

Node 的内置require函数可以自动读取 JSON 并将其转换为对象(或数组),因此您只需要:

var users = require(__dirname + '/file.json');

另外仅供参考,文件扩展名是可选的,因此您不必知道或关心这是.js.json还是该节点将来可能学会加载的任何其他扩展名。

于 2013-07-26T18:53:51.687 回答