如何更新文件中的 JSON 数据

How do I update JSON data in a file?

本文关键字:JSON 数据 文件 何更新 更新      更新时间:2023-09-26

我首先使用以下JavaScript代码获取一个JSON数组:

$.getJSON("myJSONfile.json")
    .done(function(data) {
      myData = data;
    }); 

myData 是一个全局变量。

然后,我将信息添加到 myData。然后如何更新 myJSONfile.json 以包含新数据。

对不起,如果这令人困惑。乔希

不能单独使用 JavaScript 写入任何文件。只是 cookie 或本地(或会话)存储。您可以将JSON写入本地存储,只需使用 JSON.stringify 来序列化JavaScript对象。

localStorage.setItem('myData', JSON.stringify(myData));

并检索对象

var myData = JSON.parse(localStorage.getItem('myData'));

如果你真的想在文件中写一些东西,你需要使用服务器脚本,如 phpasp .myData发送到phpphp会写你想要的。

<?php
$myData = $_GET['myData']
$fp = fopen('myJSONfile.json', 'w');
fwrite($fp, json_encode($myData));
fclose($fp);
?> 

//步骤 1:将数据发送到服务器

$.post("handler.php", {data: myData}).done(function(){
    //do something after upload
})

第 2 步:使用 PHP 将其写入文件

<?php
$json = $_POST['data'];
/* sanity check */
if (json_decode($json) != null)
{
   $file = fopen('myData.json','w+');
   fwrite($file, $json);
   fclose($file);
}
else
{
  // user has posted invalid JSON, handle the error 
}
?>

接收到的数据现在应该在 myData 变量中。我建议放一个调试器;语句,以便您可以查看收到的数据。

$.getJSON("myJSONfile.json")
.done(function(data) {
  myData = data;
  debugger;
}); 

如果您在 chrome 中打开开发人员工具并选择源代码,下次运行代码时,它将暂停在调试器上;并允许您将 myData 输入控制台并窥视对象。

一旦你知道这一点,你应该能够设置 myData.aProperty = 'newValue'