json - 在 Angular 中覆盖本地 JSON 文件
问题描述
我有一个想要修改的 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
夹中,因为这是浏览器指向其下载文件的位置。我相信我必须完全改变这个
解决方案
由于我无法更改文件保护程序的目录,因此我寻找了能够以某种方式提供相同解决方案的替代解决方案。我只是使用了我今天刚刚发现的浏览器的本地存储。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);
}
}
推荐阅读
- google-bigquery - Firebase 与 BigQuery 活跃用户不同
- java - 每次单击按钮时,如何使用 JButton 更改 JLabel?
- google-app-maker - 在 DEPLOYMENTS 下的“仅允许访问特定用户”中检索用户列表
- c# - C# Linq 嵌套类 - 条件不起作用的地方
- xml - 如何在 PostgreSQL 中从 XML 查询兄弟节点
- java - 为什么 Java 全屏独占模式没有运行我的最大屏幕分辨率?
- laravel - 验证特定规则 - Laravel
- google-maps - 如何为我的项目获取 Google 地图 3d 建筑地形?
- c++ - 在构造函数中使用结构
- python - 如何在csv文件中查找包含行的最大值的列名