我想用NodeJs读取一个json文件
我的代码很基本,
var obj = require("./sample.json");
console.log(obj[0]);
sample.json文件包含一个像这样的字符串化JSON,
"[{\"sample\":\"good\",\"val\":76159}]"
然而,console.log输出是'['不是变量中的第一个元素。我也尝试过像这样打开文件。
var obj;
fs.readFile('sample.json', 'utf8', function (err, data) {
if (err) throw err;
obj = JSON.parse(data);
console.log(obj[0]);
});
但是这里的输出也是'['为什么json文件没有正确解析?我该如何解决?
提前致谢。
答案 0 :(得分:3)
您的文件应包含:
[{"sample":"good","val":76159}]
如果包含
"[{\"sample\":\"good\",\"val\":76159}]"
然后它被编码两次。它仍然是有效的JSON,因为它是一个字符串,但是这个JSON不代表JavaScript对象:
[{
sample:"good",
val:76159
}]
但是内容为[{"sample":"good","val":76159}]
的字符串。
如果您添加第二个解析(第一个解析由require
隐式完成):
var obj = JSON.parse(require("./sample.json"));
console.log(obj[0]);
然后您将看到记录了正确的信息
因此,您最初的问题是您在./sample.json
中以错误的方式存储了值。
答案 1 :(得分:2)
[info.json]
[{
"name" : "Young",
"age" : 100,
"skill" : "js"
}]
[main.js]
var jsonObj = require('./info.json');
console.log(jsonObj[0]);
[结果]
{ name: 'Young', age: 100, skill: 'js' }