javascript - 如何将多个对象添加到一个 JSON 文件中,然后列出该文件中的所有内容?[JSON、JavaScript]
问题描述
这是我的代码:
const addReaction = {
reaction: `${args[0]}`,
webhook: `${args[1]}`,
}
const jsonString = JSON.stringify(addReaction);
fs.appendFileSync('./reactions.json', jsonString, err => {
if (err) {
console.log(err);
} else {
console.log("Success!");
}
});
运行命令后,应将 addReaction var 放入response.json 文件中,然后可以再次运行,再次添加 addReaction var 以及不同的用户输入。然后使用不同的命令,我可以读取文件。
解决方案
您不能只附加到 JSON 字符串,您将获得无效的 JSON。您应该解析 JSON,修改数据,然后再次 JSONify。
建议
// reactions.json
[
{"reaction": "blah", "webhook": "bleh"}
]
// add-reaction.js
const addReaction = {
reaction: `${args[0]}`,
webhook: `${args[1]}`,
}
const rawdata = fs.readFileSync('./add-reactions.json');
const reactions = JSON.parse(rawdata);
reactions.push(addReaction);
fs.writeFileSync( './add-reactions.json', JSON.stringify(reactions), fileOptions );
推荐阅读
- socket.io - 如何在监听断开事件时在adonisjs 5中使用socket.io获取用户ID
- optaplanner - 如何在触发 afterVariableChanged 之前设置 AnchorShadowVariable?
- python - 使用opencv python删除边缘的文本
- google-bigquery - 如何在 BigQuery 中实现嵌套的 WHEN 语句?
- wordpress - 在 WordPress Gutenberg 块中,如何在 JavaScript 中以编程方式设置 Post 属性(例如 slug/category)?
- postgresql - 如何在 typeorm postgressql 数据库中使用多语句
- post - Apache HttpClient 无法处理 POST 请求中大型有效负载的早期响应
- javascript - JS + Vue3:模态对话框:调用函数返回的参数化函数
- http - 如何在 Kubernetes 环境中模拟 HTTP 请求的慢速套接字?
- docker - 如何为在 docker 中运行的 Kafka 设置 SSL?