我有一个外部json文件,正在使用它初始化Web应用程序中的js对象(使用webpack)。
要通过以下方式读取文件:
var myObject = require('json-loader!constants/myfile.json')
应用程序需要随着时间的推移修改对象,有时还需要返回到原始状态。因此,我发现这是初始化和重新初始化(深度克隆)对象的最有效方法:
var clonedObject = JSON.parse(JSON.stringify(myObject))
这种方法似乎是多余的-首先加载json对象,然后对对象进行字符串化以仅再次加载它。
有没有一种方法来读取JSON文件作为字符串,然后JSON.parse对象(因此省略JSON.stringify步骤)?
答案 0 :(得分:1)
您可以使用raw-loader以字符串形式读取文件:
var jsonString = require('raw-loader!constants/myfile.json');
var obj1 = JSON.parse(jsonString);
var obj2 = JSON.parse(jsonString);
答案 1 :(得分:0)
您可能想先使用Blob读取文件内容。 获取文本内容,然后使用JSON.parse(jsonString)。
答案 2 :(得分:0)
老实说,我太无知了,根本无法保留库,因此我用fs
读取JSON文件,如下所示:
var fs=require("fs");
var stuff=JSON.parse(fs.readFileSync("filename","utf8"));
然后非常确定,如果有人愿意,他们可以存储fs.readFileSync()
的中间结果
var fs=require("fs");
var originaljson=fs.readFileSync("filename","utf8");
var stuff=JSON.parse(originaljson);