在单独的JSON文件中推送到一个数组

时间:2018-04-02 21:47:00

标签: javascript arrays json

假设我有一个JSON文件,该JSON文件中包含一个数组。

{
"users": ["288381238123", "12312123123"]
}

现在我想推送到那个数组,我在顶部需要该文件

const userList = require('../rolecall.json');

然后我在这里有一些其他的代码,似乎应该推送到那个数组

const users = userList.users;
users.push('82313123');

现在,当我回到JSON文件时,没有添加到数组中。这是为什么?如果有人能帮助我,那就太好了。

2 个答案:

答案 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文件,则需要回写该文件。
  • Javascript(客户端)没有创建,编辑等文件的功能。你可以在后端进行。

解决方法:

你的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));