如何仅使用JavaScript将数据添加或推送到本地JSON文件

时间:2018-07-11 12:01:22

标签: javascript jquery json

我正在读取JSON文件,并在完全匹配后删除该元素。我想在删除后将剩余数据推送到JSON文件。

readJsonFile("./objects.json", function(jsonData){
  let parsedData = jsonData; // Parsed JSON data
    for (let i=0; i <= parsedData.data.length - 1; i++) {
      if (parsedData.data[i].id == did) {
         console.log('match record-->',parsedData.data[i].id);
         console.log('deleted record-->',did);
         if (delete parsedData.data.splice(i,1)) {
              // here I want to push the data to JSON file after delete
         }
      }
    }
});

下面是readJsonFile函数

function readJsonFile(file, callback) {
  let jsonData;
  $.getJSON(file)
  .done(function (data) {
    jsonData = data;
    callback(jsonData);
  });
}

2 个答案:

答案 0 :(得分:0)

假设使用jQuery,它在浏览器中。

浏览器无法写入本地文件系统,因此您无法直接编辑文件。

您可以执行以下操作(未经测试):

GRADES

尝试强制页面下载新的JSON数据。

答案 1 :(得分:0)

例如,您可以将JSON文件本地存储到 localStorage 中。您可以按以下方式使用它:

要存储数组(或对象):

localStorage.setItem('data', JSON.stringify(array));

要获取数组(或对象):

var data = JSON.parse(localStorage.getItem('data') || '[]');

示例

var array =
[
    {
        user: {icon: 'f007'},
        home: {icon: 'f015'},
        folder: {icon: 'f07c'}
    }
];

localStorage.setItem('data', JSON.stringify(array));

function readJsonFile(jsonData, callback)
{
    callback(jsonData);
}

var data = JSON.parse(localStorage.getItem('data') || '[]');

readJsonFile(data, function(data)
{
    console.log(data[0].home.icon); // f015
});

如果您有Uncaught SecurityError,请阅读 this site