我有这个名为gameupdater.json的json文件
gameupdater.json:
{ "730":{
"success":true,
"data":{
"price_overview":{
"currency":"EUR",
"initial":1399,
"final":937,
"discount_percent":33
}
}
}
}
我有一个javascript文件,其中包含以下代码:
var updater = JSON.parse(fs.readFileSync('gameupdater.json'));
var jsonstring = JSON.stringify(updater, null, 4);
var num = updater.730.data.priceoverview.initial;
console.log(num);

然而每当我在CMD中运行它(node bot.js)时。 它没有给我我想要的东西,即1399。
它给了我这个错误:
var num = updater.730.data.priceoverview.initial;
^^^^
SyntaxError:意外的数字
哦,我很确定改变内容很难,因为这个阵列将自动从这个网站下载: http://store.steampowered.com/api/appdetails?appids=730
答案 0 :(得分:3)
您不能使用点语法编号。您需要使用大括号语法,并将其作为字符串访问:
updater["730"].data...
或者,如果属性完全是一个数字,你也可以使用一个裸数,但同样,它必须在方括号内:
updater[730].data...
答案 1 :(得分:2)
如果对象的属性以号开头,则无法使用 dot 运算符访问属性 - 您必须使用括号表示法 []
。
请参阅此MDN链接中的 Dot Notation 部分 - Property Accessors
在此代码中,属性必须是有效的JavaScript标识符,即a 字母数字字符序列,也包括下划线 (" _")和美元符号(" $"),不能以数字开头
见下面的演示:
var updater = {
"730": {
"success": true,
"data": {
"price_overview": {
"currency": "EUR",
"initial": 1399,
"final": 937,
"discount_percent": 33
}
}
}
};
var jsonstring = JSON.stringify(updater, null, 4);
var num = updater['730'].data.price_overview.initial;
console.log(num);