JS读取json文件并作为对象使用

Mat*_*est 8 javascript json object node.js

我正在尝试获取这件作品中数组中的项目数

JSON

{
  "collection" : [
    {
      "item": "apple"
    },
    {
      "item": "banana"
    }]
}
Run Code Online (Sandbox Code Playgroud)

使用以下JS (NodeJS)使用用户“elssar”的答案更新

var data = JSON.parse(fs.readFileSync(filePath));
console.log(data.collection.length);
Run Code Online (Sandbox Code Playgroud)

预期结果:2

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

els*_*sar 10

您需要将文件内容解析为 JSON。

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

或者

var data = JSON.parse(fs.readFileSync(filePath));
Run Code Online (Sandbox Code Playgroud)

或者,您可以只使用requirejson 文件(文件扩展名必须是 .json)

var data = require(filePath);
console.log(data.collection.length);
Run Code Online (Sandbox Code Playgroud)