将JSON保存到本地磁盘

时间:2011-08-22 08:24:58

标签: 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...');
},
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相同,因此不应该有任何问题。

请给我任何有关这项工作的提示/建议!

2 个答案:

答案 0 :(得分:1)

这取决于您要存储数据的位置。处理它有两种方法

  1. 服务器端存储:取决于您使用和执行的服务器 使用其中提供的所有方法进行适当的文件处理以保存它。
  2. 客户端存储:HTML5中引入了所有最新版本的modren浏览器。你所要做的就是 -

    保存在localstorage中 - 假设声明var bar = 'abc'localstorage.setItem('foo', bar);其中 foo 充当,而bar充当其值。

    从LocalStorage加载 - var value = localstorage.getItem('foo');这会将'abc'指定给值。

  3. 如果您使用的是谷歌浏览器,那么您可以在开发人员工具中查看本地存储 - >资源 - >本地存储

答案 1 :(得分:0)

编辑:对于本地磁盘。如果没有文件系统层(例如本地apache webserver或本地系统上的其他协议),则无法通过浏览器完成此操作。

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

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

帖子处理程序应该执行以下操作:

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

您可以使用各种语言,例如:PHP,Ruby或Perl