簡體   English   中英

使用JavaScript解析JSON

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM