Javascript 需要帮助才能让JSON.parse()正常工作(Discord Bot)
我有一个单独的JSON文件,链接为Javascript 需要帮助才能让JSON.parse()正常工作(Discord Bot),javascript,node.js,json,discord.js,Javascript,Node.js,Json,Discord.js,我有一个单独的JSON文件,链接为 const Players = require('./Database/Players.json'); 还有一个通过密码的praser client.on('message', message => { if (message.content.toLowerCase() ==='smack activate') { let PlayerData = [message.author.username];
const Players = require('./Database/Players.json');
还有一个通过密码的praser
client.on('message', message => {
if (message.content.toLowerCase() ==='smack activate') {
let PlayerData = [message.author.username];
Activate [message.author.username] = {
AccountActive: 1,
Health: 100,
Level: 1,
Lust: 0,
Items: ""
};
var parsedata = JSON.parse(Players) // <-----------
if (parsedata.PlayerData.accountactive === 1) {
message.channel.send ("Account Already Activated");
return;
}
fs.writeFile("./Database/Players.json", JSON.stringify (Activate, null, 4), err => {
if (err) throw err;
message.channel.send ("Account Activated")
});
};
看看
require
是如何工作的。如文件所述:
将_加载为_文件(X)
因此,您不应该调用
JSON.parse
,因为require
会自动将JSON模块解析为JavaScript对象。据我所知,您正在尝试执行以下操作:
const Players = require('./Database/Players.json');
client.on('message', message => {
if (message.content.toLowerCase() === 'smack activate') {
const PlayerData = Players[message.author.username];
if (PlayerData && (PlayerData.AccountActive === 1)) {
message.channel.send("Account Already Activated");
return;
}
Players[message.author.username] = {
AccountActive: 1,
Health: 100,
Level: 1,
Lust: 0,
Items: ""
};
fs.writeFile("./Database/Players.json", JSON.stringify(Players, null, 4), err => {
if (err) throw err;
message.channel.send("Account Activated")
});
};
})
如果它已经是JSON数据,为什么要对它进行分析。@DeekshithHegde如果我不分析它,我会收到一个错误,说if(Players.PlayerData.accountactive=1){}中的=符号是错误的。我知道这很有帮助。所以我确实去掉了JSON.parse,但现在得到的错误是=符号是wrong@Yuzi我明白了,你能把
Players
变量的内容打印到控制台并在这里共享吗(如果它不包含敏感信息的话)?是的,我可以帮你
const Players = require('./Database/Players.json');
client.on('message', message => {
if (message.content.toLowerCase() === 'smack activate') {
const PlayerData = Players[message.author.username];
if (PlayerData && (PlayerData.AccountActive === 1)) {
message.channel.send("Account Already Activated");
return;
}
Players[message.author.username] = {
AccountActive: 1,
Health: 100,
Level: 1,
Lust: 0,
Items: ""
};
fs.writeFile("./Database/Players.json", JSON.stringify(Players, null, 4), err => {
if (err) throw err;
message.channel.send("Account Activated")
});
};
})