从JSON文件访问数据

时间:2017-01-30 10:23:48

标签: javascript json node.js

我想从Nodejs中的JSON文件中读取数据。假设我有以下文件:

{
"categories": [
{
    "title": "Music Awards",
    "subtitle": "Choose the category",
        "buttons": [{
            "type": "postback",
            "title": "Film Category",
            "payload": "category_film"
        }, {
            "type": "postback",
            "title": "Upcoming Category",
            "payload": "category_upcoming"
        },{
            "type": "postback",
            "title": "Technical Category",
            "payload": "category_technical"
        }
    ]
}
]
}

我已阅读并解析了该文件。

var cat = JSON.parse(fs.readFileSync('selectcat.json', 'utf8'));

现在我正在尝试cat.categories但是没有得到任何东西。

1 个答案:

答案 0 :(得分:2)

您在控制台中获得[object Object]很奇怪。该数据未达到console.log的最大深度(至少在buttons之前)。如果您执行类似

的操作
var cat = JSON.parse(fs.readFileSync('f.json', 'utf8'));
console.log("cat: " + cat);

然后你得到[object Object]因为你的字符串连接在对象上隐式调用toString(),而[object Object]是它的表示。

但是,如果你,只需记录

console.log(cat);

console.log("cat:", cat); // mind the comma

你会得到你期望的数据。

旁注:

如果您需要使用所有数据记录整个对象,可以使用节点util

const fs = require("fs");
const util = require("util");
let cat = JSON.parse(fs.readFileSync('selectcat.json', 'utf8'));
console.log(util.inspect(cat, {showHidden: false, depth: null}));