我有一个带有json对象的json文件,请问如何逐行读取json对象.这是使用node.js读取json文件的最佳方法,原谅我的问题,只是一个node.js新手
我的json文件只包含json对象行:
file.json
{"name":"user1"},
{"name":"user2"},
{"name":"user3"}
Run Code Online (Sandbox Code Playgroud)
我正在尝试阅读该文件
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);
});
});
Run Code Online (Sandbox Code Playgroud)
我得到一个错误的代码,说"意外的令牌{"只是在第二行",坦克
//编辑原来我的Json文件无效,因为readFile读取整个文件,我通过将对象放在一个数组中来改变它:
file.json
[
{"name":"user1"},
{"name":"user2"},
{"name":"user3"}
]
Run Code Online (Sandbox Code Playgroud)
然后这段代码读取整个文件(数组)
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);
})
});
Run Code Online (Sandbox Code Playgroud)
Node的内置require函数可以自动读取JSON并将其转换为对象(或数组),因此您只需要:
var users = require(__dirname + '/file.json');
Run Code Online (Sandbox Code Playgroud)
此外FYI文件扩展名是可选的,所以你不必知道或关心如果这是.js,.json或任何其他扩展该节点可以学会在未来的加载.