我有一个带有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);
})
});
答案 0 :(得分:6)
Node的内置require
函数可以自动读取JSON并将其转换为对象(或数组),所以您只需要:
var users = require(__dirname + '/file.json');
另外,FYI文件扩展名是可选的,因此您不必知道或关心这是.js
,.json
还是节点可能学习将来加载的任何其他扩展名。