Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
Jquery 将JSON保存到本地磁盘_Jquery_Json - Fatal编程技术网

Jquery 将JSON保存到本地磁盘

Jquery 将JSON保存到本地磁盘,jquery,json,Jquery,Json,我使用jquery提供的.ajax方法在变量中包含一些json数据。在处理过程中,我修改了它的某些部分。现在我希望将其保存回去,以便刷新将加载更改的值。我使用带有“post”的.ajax()作为类型: $.ajax({ type: 'POST', url: "Scripts/"+fileName, async: false, data: JSON.stringify(myData), dataType: "json", success: function(data) { alert('hi...

我使用jquery提供的.ajax方法在变量中包含一些json数据。在处理过程中,我修改了它的某些部分。现在我希望将其保存回去,以便刷新将加载更改的值。我使用带有“post”的.ajax()作为类型:

$.ajax({
type: 'POST',
url: "Scripts/"+fileName,
async: false,
data: JSON.stringify(myData),
dataType: "json",
success: function(data) {
alert('hi...');
},
error: function () {
alert('error...');
}});  
我的json数据包含数组等:

{"workbook":{"excelname":"D:\/JavaProject\/SpreadsheetScanningFromRepository\/testing\/Test Data - Relationship\/multilevelLabels.xls","sheet":{"name":"Sheet1","structures":{"structure":{"StructureComment":null,"orientation":"Labels are in Rows","CompleteData":[{"label":"Company name","data":[["Bathni",{"datatype":"String Data"}],["Bathni",{"datatype":"String Data"}],["Bathni",{"datatype":"String Data"}],["Bathni",{"datatype":"String Data"}],["BBM",{"datatype":"String Data"}],["BBM",{"datatype":"String Data"}],["BBM",{"datatype":"String Data"}],["Finsys",{"datatype":"String Data"}],["Finsys",{"datatype":"String Data"}],["Avaya",{"datatype":"String Data"}]]}...
上面显示的调用返回成功并打印hi,但文件中没有更改!!async为false,因此它应该立即进行更改。给定的url与我从本地文件系统读取json数据时使用的url相同,因此不会出现任何问题


请给我做这项工作的任何提示/建议

编辑:对于本地磁盘。如果没有文件系统层(例如本地ApacheWebServer或本地系统上的其他协议),则无法从浏览器执行此操作

要更改服务器上的文件,您发布的数据应该由负责服务器上文件操作的服务器端脚本处理。仅仅将数据发布到文件只会返回您的文件,因为其中没有任何内容可以处理发布的值

您应该将数据传递给post处理程序,而不是要修改的文件

此post处理程序应执行以下操作:

  • 接受发布的数据(大多数情况下自动)
  • 打开文件进行写入
  • 将发布的数据写入文件(json编码格式)
  • 关闭文件
  • 打印修改文件的内容

为此,您可以使用各种语言,如:PHP、Ruby或Perl。这取决于您要将数据存储在何处。有两种方法可以解决这个问题

  • 服务器端存储:这取决于您正在使用的服务器和执行的操作 使用其中提供的所有方法进行适当的文件处理,以保存文件
  • 客户端存储:它是在HTML5中引入的,所有最新版本的modren浏览器都支持HTML5。你所要做的就是-

    若要保存在本地存储中,请假定声明了
    var bar='abc'
    <代码>localstorage.setItem('foo',bar)其中foo作为键,bar作为其值的一个变量

    要从LocalStorage加载-
    var value=LocalStorage.getItem('foo')这将为值分配“abc”


  • 如果您正在使用Google Chrome,那么您可以在开发者工具->资源->本地存储中查看本地存储

    您想将其保存在服务器上还是客户端?我想将其写入本地文件系统ie客户端如果我说我的数据是json格式的,那么实际上不需要任何其他处理将数据发送到客户端文件,即使它是本地的,也不会使文件被发送的数据覆盖。浏览器不是这样工作的。如果您不使用服务器,只是在浏览器中打开本地文件,这意味着没有足够的环境来更改文件。您需要一个层来处理文件系统操作。简单的浏览器无法做到这一点。