假设我有一个JSON文件,该JSON文件中包含一个数组。
{
"users": ["288381238123", "12312123123"]
}
现在我想推送到那个数组,我在顶部需要该文件
const userList = require('../rolecall.json');
然后我在这里有一些其他的代码,似乎应该推送到那个数组
const users = userList.users;
users.push('82313123');
现在,当我回到JSON文件时,没有添加到数组中。这是为什么?如果有人能帮助我,那就太好了。
答案 0 :(得分:0)
当您在Javascript中“推送”到数组时,您只是在更改Javascript对象。
编辑:将里昂的评论纳入考虑范围
简短的回答是,您无法使用javascript更改客户端计算机上的文件。这将是一个巨大的安全问题(虽然它曾经是可能的,有趣的时间)。
但是,您可以ask the browser to display a save dialog询问用户是否要将json的内容保存到文件中。
旧答案
如果要将更改保存到位于服务器上的文件,则需要将信息发送到所述服务器,最好通过POST请求。
一种简单的方法是使用Ajax requests。
您可以使用JSON.stringify
方法设置users
对象的格式。
xhttp.send(JSON.stringify(users));
然后您可以在服务器上处理请求。这样做的方式取决于使用的语言(PHP,Ruby,Node等)
答案 1 :(得分:0)
观察:
userList
。如果您要更新rolecall.json
文件,则需要回写该文件。解决方法:
你的json在userList
常量变量中。现在您可以将该元素推入数组,然后如果您在后端操作它(即:NodeJs),则回写rolecall.json
const userList = {
"users": ["288381238123", "12312123123"]
};
userList.users.push('82313123');
console.log(userList);

在node.js
中,您可以使用fs
库。
fs = require('fs');
fs.writeFile('fileName.json', JSON.stringify(userList));