[英]Parsing a JSON with JavaScript
也許有人可以幫我走正確的方向? 非常感謝任何提示。
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”
您的屬性的關鍵實際上是“credentials.steam.accountName”。 您不能使用點符號遍歷對象“憑證”或“蒸汽”,因為這些不是對象。 要訪問這些值,請使用: rawCredentials['credentials.steam.accountName']
。
編輯:如果您想使用rawCredentials.credentials.steam.accountName
您的JSON必須如下所示:
rawCredentials = {
credentials: {
steam: {accountName: 'foo', ...}
}
}
這些是完整的屬性名稱,在JSON文件中包含點,而不是實際的嵌套對象。
此外,你已經忘記了.credentials
部分。 而是使用括號表示法 :
credentials.steam.accountName = rawCredentials["credentials.steam.accountName"];
credentials.steam.password = rawCredentials["credentials.steam.password"];
(或重構你的JSON)
不知道這可能是問題,但你的auth.json中有一個糟糕的結構:
{
"credentials.steam.accountName": "XXX",
"credentials.steam.password": "XXX"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.