Parsing JSON with JavaScript
Can someone please help me step in the right direction? Thanks a lot for any hints.
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 file
{
"credentials.steam.accountName": "XXX",
"credentials.steam.password": "XXX",
}
Cannot read property "accountName" from undefined
source to share
Your property key is "credentials.steam.accountName". You cannot use dot symbols to navigate to credentials or pairs objects because they are not objects. Use to access the values: rawCredentials['credentials.steam.accountName']
.
Edit: if you want to use rawCredentials.credentials.steam.accountName
your JSON should look like this:
rawCredentials = {
credentials: {
steam: {accountName: 'foo', ...}
}
}
source to share
These are fully qualified property names that contain periods, not actual nested objects, in your JSON file.
Also, you forgot a part .credentials
. Use parenthesis notation instead :
credentials.steam.accountName = rawCredentials["credentials.steam.accountName"];
credentials.steam.password = rawCredentials["credentials.steam.password"];
(or refactor your JSON)
source to share