Javascript 导出HTML表并保存到.json文件
我有一个HTML表,它通过ajax调用读取和加载JSON文件,然后允许用户对该数据进行更改 该程序完全用HTML和JavaScript/jQuery完成 它已经差不多完成了,我已经有了格式化为JSON的输出,但是我仍然需要找到一种方法来导出该输出,并将其保存到一个文件中(这显然是使用JavaScript无法做到的—出于安全原因?),或者更新旧的输出 所以我的问题是,最简单的方法是什么Javascript 导出HTML表并保存到.json文件,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个HTML表,它通过ajax调用读取和加载JSON文件,然后允许用户对该数据进行更改 该程序完全用HTML和JavaScript/jQuery完成 它已经差不多完成了,我已经有了格式化为JSON的输出,但是我仍然需要找到一种方法来导出该输出,并将其保存到一个文件中(这显然是使用JavaScript无法做到的—出于安全原因?),或者更新旧的输出 所以我的问题是,最简单的方法是什么 谢谢将您的json发回服务器,然后让服务器将文件公开为可通过链接、按钮等访问的附件。将您的json发回服务器,然
谢谢将您的json发回服务器,然后让服务器将文件公开为可通过链接、按钮等访问的附件。将您的json发回服务器,然后让服务器将文件公开为可通过链接、按钮等访问的附件。如果您不想干扰服务器,您可以在某些元素中将数据作为文本显示给用户,还可以添加一个用于快速复制的按钮。然后,用户可以保存到一个文件,如果他想 如果需要自动保存到文件,则必须:
- 将数据发送回服务器
// the code supposes that you have a variable `data` containing the JSON
var request = new XMLHttpRequest(),
body = new FormData();
body.append('user_data', data);
// The url here points to a url with path according to the desired functionality on the server
request.open("POST", "http://yourwebsite/jsonHandle", true);
request.send(body);
如果您无法在正在使用的浏览器中使用FormData()
,可以执行以下操作:
request.send("user_data=" + data);
在本例中,我们使用post请求,以便将json数据保存在请求体中,而不是在url中显示它。如果您不关心它,请使用get请求
之后,您有两种选择:
如果选择第二个,请记住文件将保留在服务器上,除非您将其删除。如果您不想弄乱服务器,您可以在某些元素中将数据以文本形式显示给用户,还可以添加一个用于快速复制的按钮。然后,用户可以保存到一个文件,如果他想 如果需要自动保存到文件,则必须:
- 将数据发送回服务器
// the code supposes that you have a variable `data` containing the JSON
var request = new XMLHttpRequest(),
body = new FormData();
body.append('user_data', data);
// The url here points to a url with path according to the desired functionality on the server
request.open("POST", "http://yourwebsite/jsonHandle", true);
request.send(body);
如果您无法在正在使用的浏览器中使用FormData()
,可以执行以下操作:
request.send("user_data=" + data);
在本例中,我们使用post请求,以便将json数据保存在请求体中,而不是在url中显示它。如果您不关心它,请使用get请求
之后,您有两种选择:
数据URI创建
来“创建”文件
函数下载(文件名、文本){
var-element=document.createElement('a');
element.setAttribute('href','data:application/json;charset=utf-8',+encodeURIComponent(text));
setAttribute('download',filename);
element.style.display='none';
document.body.appendChild(元素);
元素。单击();
document.body.removeChild(元素);
}
表格*{
显示:块;
利润率:10px;
}
{
“a”:“b”,
“arr”:[
{
“c”:“d”
},
{
“d”:“e”
}
]
}
您可以通过使用触发下载的数据URI创建
来“创建”文件
函数下载(文件名、文本){
var-element=document.createElement('a');
element.setAttribute('href','data:application/json;charset=utf-8',+encodeURIComponent(text));
setAttribute('download',filename);
element.style.display='none';
document.body.appendChild(元素);
元素。单击();
document.body.removeChild(元素);
}
表格*{
显示:块;
利润率:10px;
}
{
“a”:“b”,
“arr”:[
{
“c”:“d”
},
{
“d”:“e”
}
]
}
是的,我需要自动将数据保存到文件中。我有一个“导出”按钮,一旦用户单击它,我就从表中获取更新的数据,并使用表到json插件格式化数据,到目前为止,我只将输出记录到控制台,所以现在我只想将更新的数据保存回加载的同一个文件。是的,我需要将数据自动保存到一个文件中。我有一个“导出”按钮,一旦用户单击它,我就从表中获取更新的数据,并使用表到json插件格式化数据,到目前为止,我只将输出记录到控制台,所以现在我只想将更新的数据保存回加载的同一个文件。