Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从JSON文件访问数据_Javascript_Json_Node.js - Fatal编程技术网

Javascript 从JSON文件访问数据

Javascript 从JSON文件访问数据,javascript,json,node.js,Javascript,Json,Node.js,我想从Nodejs中的JSON文件中读取数据。假设我有以下文件: { "categories": [ { "title": "Music Awards", "subtitle": "Choose the category", "buttons": [{ "type": "postback", "title": "Film Category", "payload": "category_film

我想从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,但没有得到任何结果。

奇怪的是,您在控制台中得到了
[object object]
。该数据未达到
控制台.log的最大深度(至少在
按钮
之前)。如果你这样做

var cat = JSON.parse(fs.readFileSync('f.json', 'utf8'));
console.log("cat: " + cat);
然后您将得到
[object object]
,因为字符串连接隐式调用对象上的
toString()
,而
[object object]
是其表示形式

但是,如果您需要,只需登录即可

console.log(cat);

您将获得预期的数据

旁注:

如果需要使用所有数据记录整个对象,可以使用节点的
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}));

为我工作。。。请描述(通过添加相关代码)您正在使用
cat
做什么。在控制台中,我得到,“[object object]”检查您是否正确获取文件内容
fs.readFileSync('selectcat.json','utf8')
Yaa文件正在正确读取,因此没有问题,您实际上可以只
require()
一个JSON格式的文件,并返回解析结果。例如:
var cat=require('selectcat.json')不获取“按钮”控制台中的数据。log()通常用于调试目的。数据就在那里,只是没有显示出来@RakshitBhatnagar您想对数据做什么?如果你坚持用一种显示整个对象@RakshitBhatnagar的方式来记录答案,只需在按钮上循环即可
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}));