如何将数据保存到json文件中?

3

我需要使用JSON.stringify将对象转换为字符串,然后将JSON数据保存到一个.json文件中。

这是我的当前代码:

const jsonObject: object = {
      'countryName': 'Switzerland',
      'users': [
        {
          'id': 1,
          'name': 'Basel',
          'founded': -200,
          'beautiful': true,
          'data': 123,
          'keywords': ['Rhine', 'River']
        },
        {
          'id': 1,
          'name': 'Zurich',
          'founded': 0,
          'beautiful': false,
          'data': 'no',
          'keywords': ['Limmat', 'Lake']
        }
      ]
    };

const myData = JSON.stringify(jsonObject);

注意:我希望能够动态保存这些数据,而我之前使用的是jsonTypescript2的jsonConverter。

我尝试了以下方法:

let a = document.createElement('a');

// JSON.stringify(jsonObject), 'ex.json' // another
a.setAttribute('href', 'data:application/json;charset=UTF-8,' + encodeURIComponent(myData));

在encodeURIComponent方法中尝试使用JSON.parse(myData)。 - Md Sabbir Alam
类型为'myData'的参数无法赋值给类型为'string'的参数。 - user10177736
但如果我使用 stringify(jsonObject),就不会出现错误。 - user10177736
点击 "a" 元素后,您想要保存数据吗? - Md Sabbir Alam
是的,将数据保存在JSON文件中。 - user10177736
例如将数据保存在assets/i18n中。 - user10177736
2个回答

6

好的,在6天前,我找到了最佳解决方案,可以直接且动态地连接Angular 6和Node.js + json文件。

npm install file-saver --save
import { saveAs } from 'file-saver';


const jsonObject: object = {
      'City': [
        {
          'id': 1,
          'name': 'Basel',
          'founded': -200,
          'beautiful': true,
          'data': 123,
          'keywords': ['Rhine', 'River']
        },
        {
          'id': 1,
          'name': 'Zurich',
          'founded': 0,
          'beautiful': false,
          'data': 'no',
          'keywords': ['Limmat', 'Lake']
        }
      ]
    };


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

3
能否覆盖现有的 JSON 文件? - Uzi

4
你可以使用fs.js NPM模块将数据写入文件。 文件系统API中有很多细节。据我所知,最常见的方法是:
var fs = require('fs');
fs.writeFile("/fileName.json", myData, function(err) {
    if(err) {
        return console.log(err);
    }

    console.log("The file was saved!");
}); 

var fs = require('fs'); 在 Angular 6 中无法工作 :D。 - user10177736
你想让用户在他的系统中下载JSON文件吗? - NAVIN
use <textarea></textarea> - user10177736
我可以将HTML数据转换为TypeScript,但我无法将数据保存在file.json文件中。 - user10177736
将数据保存在assets/i18n/en.json和assets/i18n/fr.json中。 - user10177736
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接