javascript - 无法在客户端编辑json文件

标签 javascript jquery json

我想使用 javascript 编辑 json 文件。该文件是“client.json”,位于本地系统,并且仅在本地系统上修改。我正在使用表单创建新的客户详细信息,并且希望将这些详细信息作为对象附加到 json 文件中。

 {"clients":[
        {
            "name":"xxxx",
            "team":"yyy",
            "location": {
                "city":"beijing",
                "country":"china"
                        },
        "wdays":{"start":"Monday","end":"friday"},
        "whours":{"start":"9 A.M","end":"6 P.M" }
        },
        {
            "name":"xxxx",
            "team":"yyy",
            "location": {
                "city":"new york",
                "country":"usa"
                       },
        "wdays":{"start":"Monday","end":"friday"},
        "whours":{"start":"9 A.M","end":"6 P.M" }
        }
]}

下面的 javascript 代码是关于从表单读取数据并将该数据附加为 json 对象......`

</script>
<script type="text/javascript">
    function addtojson()
    {
       var client_name=(document.getElementById("cname")).value;
       var country=document.getElementById("country").value;
       var city=document.getElementById("city").value;
       var wtimeto=document.getElementById("wtimeto").value;
       var wtimefrom=document.getElementById("wtimefrom").value;
       var wdayto=document.getElementById("wdayto").value;
       var wdayfrom=document.getElementById("wdayfrom").value;
    jQuery.getJSON('client.json')
  .done(function(data) {
  var cobj=new Object();
  cobj.name=client_name;
  cobj.team="YYY";
  cobj.location=new Object();
  cobj.location.city=city;
  cobj.location.country=country;
  cobj.wdays=new Object();
  cobj.wdays.start=wdayto;
  cobj.wdays.end=wdayfrom;
  cobj.whours=new Object();
  cobj.whours.start=wtimeto;
  cobj.whours.end=wtimefrom;
  var myString = JSON.stringify(cobj);
  alert('I am working');
  alert(myString);
   data.clients.push(cobj);
      alert(JSON.stringify(data.clients[0]));//it gives previous first array object
      alert(JSON.stringify(data.clients[1]));//it gives previous second array object
      alert(JSON.stringify(data.clients[2]));//it gives the new appended array object
      });


return true;
} 
</script>`

虽然数据在程序中本地修改,但是 json 文件没有更新?????????

最佳答案

浏览器中的JavaScript一般不允许写入本地磁盘。无论如何,加载 JSON 文件后,您将在内存中编辑加载的文档,这不会影响磁盘上的文件,直到您将更改写入磁盘。这就是您将遇到不允许从脚本写入磁盘的问题的地方。

也许能够使用动态生成的数据:URI 来触发下载提示,下载文件的新版本并将其保存到磁盘。请参阅http://en.wikipedia.org/wiki/Data_URI_scheme了解更多信息。

关于javascript - 无法在客户端编辑json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396271/

相关文章:

java - Spark 获取嵌套 json 的列名

javascript - 可以将模型传播到组件,但不能传播到 sap.ui.jsfragment

javascript - lodash _.get typescript 中的函数

java - 来自 2 个与用户位置配合使用的 AsyncTask,只有一个适用于 Java 和 Android

json - 是否可以使用 serde_json 反序列化看起来像 JSON(但不是)的数据?

javascript - 如何使用 Refresh 获取日期时间 Angular JS

javascript - 当用户输入时,在同一页面上以 HTML 格式显示 FCKeditor 输入数据?

javascript - NVD3.js Y轴最小值

javascript - 如何判断插入键是否被按住

javascript - 如何通过 Javascript/JQuery 重新排序 HTML