覆盖Angular中的本地JSON文件

时间:2019-07-24 06:06:31

标签: json angular

我有一个要修改的json文件。我已经有一种将其映射到模型中的方法,但事实是,我无法保存它或覆盖现有的json文件。我已经尝试过file-saver,但得知无法更改保存目录,因为它取决于浏览器的设置。

我只需要修改assets文件夹中的json文件,就可以编写一个get方法,该方法将返回修改后的json文件。

我不知道我能提供什么信息,但这是我到目前为止所拥有的:

JSON文件:

{
    "id": 1,
    "firstName": "sampleName",
    "lastName": "sampleLastName",
    "car": {
        "brand": "Toyota",
        "model": "Vios",
        "year": 2017
    }
}

保存方法:

saveJson(arg) {
  const blob = new Blob([JSON.stringify(arg)], {type : 'application/json'});
  saveAs(blob,'test.json');
}

arg参数将接收具有新数据集的模型。此方法始终将新的json文件保存在Downloads文件夹中,因为这是浏览器指向其下载文件的位置。我相信我必须完全改变这一点

1 个答案:

答案 0 :(得分:0)

由于我将无法更改文件保护程序的目录,因此我寻找了可以以某种方式提供相同解决方案的替代解决方案。我只是使用了今天才发现的浏览器的本地存储。 XD

无论如何,以防万一初学者遇到相同的问题并且不知道如何使用本地浏览器存储,这是我提供的服务:

import { Injectable } from '@angular/core';

@Injectable()
export class MockService {
  saveJson(id, obj) {
    localStorage.setItem(id, JSON.stringify(obj));
  }

  getJson(id) {
    return JSON.parse(localStorage.getItem(id));
  }

  removeJson(id) {
    localStorage.removeItem(id);
  }
}