bots - 编写 JSON 文件
问题描述
所以我正在写一个json文件,当我将2个用户写入一个文件时,用户B替换用户A应该是:
{
"user": {
"user": "user1",
"id": "id"
},
"user": {
"user": "user2",
"id": "id2"
}
}
但它只是将 user1 替换为 user2。
代码:
if(command === "add"){
let mentionedUser = message.mentions.users.first()
var user = mentionedUser.username
var jsonData = {
users:{
user: user,
id: mentionedUser.id
}
}
fs.writeFileSync("./config.json", JSON.stringify(jsonData, null, 4), err => {
if(err) throw err;
message.channel.send("ID Pushed")
})
解决方案
fs.writeFileSync 的默认模式是覆盖整个文件。您可以使用appendFileSync或在fileWriteSync中设置一个选项来附加新文本:
fs.writeFileSync('config.json', JSON.stringify(jsonData, null, 4), {flag: 'a'}, err => {...});
fs.appendFileSync('config.json', JSON.stringify(jsonData, null, 4), err => {...});
您也可以使用appendFile或fileWrite异步执行此操作。还有一个很好的StackOverflow Question。
编辑:
您也可以导入文件。然后您可以创建对象并将其附加到数据结构中。最后,您可以将结果写回文件。
推荐阅读
- python - 从 Python 函数访问 Azure Blob 的问题
- c# - 将类序列化为字典
- azure - CSP 计划的每日计费状态
- beyondcompare3 - Beyond Compare 3 在脚本中区分大小写
- html - CSS多列布局在移动视图中重叠
- javascript - 根据数组值显示 HTML 元素
- swift - 我们可以在 Swift 中同时使用 Public 和 Private Access 修饰符吗?
- c++ - 向量下标超出范围错误 - C++ Vectors & OpenCV4
- php - 不使用隐藏字段和表单的 Ajax 'POST' 值到另一个页面
- excel - VBA:将特定单元格从 Excel 复制到 Word 上的表格中并格式化输出