也许有人可以帮助我走上正确的方向?非常感谢你的任何提示。
var credentials = { steam: {}, rpc: {} };
var rawCredentials = JSON.parse(fs.readFileSync("auth.json", { "encoding": "utf8" }));
credentials.steam.accountName = rawCredentials.steam.accountName;
credentials.steam.password = rawCredentials.steam.password;
credentials.steam.shaSentryfile = new Buffer(rawCredentials.steam.shaSentryfile, "hex");
credentials.rpc.username = rawCredentials.rpc.username;
credentials.rpc.password = rawCredentials.rpc.password;auth.json文件
{
"credentials.steam.accountName": "XXX",
"credentials.steam.password": "XXX",
}无法读取未定义的属性“”accountName“”
发布于 2014-09-17 03:57:29
您的属性的键实际上是"credentials.steam.accountName“。您不能使用点符号来遍历对象"credentials“或"steam",因为它们不是对象。要访问这些值,请使用:rawCredentials['credentials.steam.accountName']。
编辑:如果你想使用rawCredentials.credentials.steam.accountName,你的JSON必须看起来像这样:
rawCredentials = {
credentials: {
steam: {accountName: 'foo', ...}
}
}发布于 2014-09-17 03:58:24
这些是JSON文件中包含点的完整属性名,而不是实际的嵌套对象。
此外,您还忘记了.credentials部分。相反,请使用bracket notation
credentials.steam.accountName = rawCredentials["credentials.steam.accountName"];
credentials.steam.password = rawCredentials["credentials.steam.password"];(或者重构您的JSON)
发布于 2014-09-17 04:00:12
不知道这是否是问题所在,但是您的auth.json中有一个糟糕的语法:
{
"credentials.steam.accountName": "XXX",
"credentials.steam.password": "XXX"
}https://stackoverflow.com/questions/25877334
复制相似问题