Node.js中如何获取含数字键的Steam API JSON数据?
解决Node.js中访问数字键JSON属性的问题
嘿,我完全懂你碰到的这个困扰!当从Steam API拿到的JSON里,第一个键是纯数字(比如367520)时,用.点语法去访问确实会报错——这是JavaScript本身的语法规则限制,不是你的问题哦!
为什么body.367520会报错?
JavaScript里,用点符号访问对象属性时,属性名必须是有效的标识符:不能以数字开头、不能包含空格或特殊字符(除了下划线和$)。纯数字的键显然不符合这个要求,所以直接写body.367520会触发语法错误。
两种可行的解决方法
1. 用方括号语法访问
这是最直接的解决方案,把数字键用引号包裹后放在方括号里:
// 假设你已经拿到了解析后的JSON响应体body const gameInfo = body['367520']; // 现在就能正常访问里面的属性了 console.log(gameInfo.success); // 输出true/false console.log(gameInfo.data.name); // 输出游戏名称
2. 解构赋值时使用别名
如果你想让代码更简洁易读,可以在解构的时候给数字键起一个语义化的别名:
const { '367520': hollowKnightData } = body; // 之后直接用别名访问就好 console.log(hollowKnightData.data.price_overview);
额外技巧:动态键的处理
如果你的appid是动态变化的(比如要批量请求多个游戏数据),可以把appid存在变量里,再用变量访问:
const targetAppId = '367520'; const gameData = body[targetAppId]; // 后续换其他appid只需要修改targetAppId变量即可
最后别忘了确认一下:你拿到的body已经是解析后的JSON对象,而不是原始字符串。如果还是字符串的话,得先用JSON.parse(body)转成对象再操作哦!
内容的提问来源于stack exchange,提问作者user8028064
相关产品推荐
相关产品推荐

