JS读取json文件并用作对象

我想这样得到这个数组内的数组中的项目的数量

JSON

{ "collection" : [ { "item": "apple" }, { "item": "banana" }] } 

使用下面的JS (NodeJS)用用户'elssar'

 var data = JSON.parse(fs.readFileSync(filePath)); console.log(data.collection.length); 

预期成果: 2

没有指定编码data将是一个缓冲区而不是string(感谢用户nils)。 JSON.parse应该适用于两者。 现在我得到一个错误Unexpected token ? at Object.parse (native) Unexpected token ? at Object.parse (native) 。 任何想法如何解决这个问题? (使用节点5.2.0)

您需要将文件的内容parsing为JSON。

 fs.readFile(filePath, function (error, content) { var data = JSON.parse(content); console.log(data.collection.length); }); 

要么

 var data = JSON.parse(fs.readFileSync(filePath)); 

另外,你可以只require json文件(文件扩展名需要是.json)

 var data = require(filePath); console.log(data.collection.length);