Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 导出HTML表并保存到.json文件_Javascript_Jquery_Html_Json - Fatal编程技术网

Javascript 导出HTML表并保存到.json文件

Javascript 导出HTML表并保存到.json文件,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个HTML表,它通过ajax调用读取和加载JSON文件,然后允许用户对该数据进行更改 该程序完全用HTML和JavaScript/jQuery完成 它已经差不多完成了,我已经有了格式化为JSON的输出,但是我仍然需要找到一种方法来导出该输出,并将其保存到一个文件中(这显然是使用JavaScript无法做到的—出于安全原因?),或者更新旧的输出 所以我的问题是,最简单的方法是什么 谢谢将您的json发回服务器,然后让服务器将文件公开为可通过链接、按钮等访问的附件。将您的json发回服务器,然

我有一个HTML表,它通过ajax调用读取和加载JSON文件,然后允许用户对该数据进行更改

该程序完全用HTML和JavaScript/jQuery完成

它已经差不多完成了,我已经有了格式化为JSON的输出,但是我仍然需要找到一种方法来导出该输出,并将其保存到一个文件中(这显然是使用JavaScript无法做到的—出于安全原因?),或者更新旧的输出

所以我的问题是,最简单的方法是什么


谢谢

将您的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请求

之后,您有两种选择:

  • 将结果文件作为响应发送
  • 将文件保存到服务器,并将用户重定向到中文件的路径(如果路径不是常量,则必须将其作为服务器的响应发送回) 一个新选项卡(用于类似文本的文件,如JSON)(例如。 JQuery提供 下载)

  • 如果选择第二个,请记住文件将保留在服务器上,除非您将其删除。

    如果您不想弄乱服务器,您可以在某些元素中将数据以文本形式显示给用户,还可以添加一个用于快速复制的按钮。然后,用户可以保存到一个文件,如果他想

    如果需要自动保存到文件,则必须:

    • 将数据发送回服务器
    如何:

    // 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请求

    之后,您有两种选择:

  • 将结果文件作为响应发送
  • 将文件保存到服务器,并将用户重定向到中文件的路径(如果路径不是常量,则必须将其作为服务器的响应发送回) 一个新选项卡(用于类似文本的文件,如JSON)(例如。 JQuery提供 下载)
  • 如果选择第二个,请记住,除非删除该文件,否则该文件将保留在服务器上。

    您可以通过使用触发下载的
    数据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插件格式化数据,到目前为止,我只将输出记录到控制台,所以现在我只想将更新的数据保存回加载的同一个文件。