我要像下面那样导入json文件,并将其解析后转换为字符串:
const obj = require('test.json')
const downloadable = JSON.stringify(obj)
但是,上面的可下载变量包含额外的属性,例如下面的属性,原始json文件没有这些属性
"__fnct": [
null
]
和
"_render": true
这是怎么回事,我如何找回原始JSON文件内容?
答案 0 :(得分:0)
您可以使用fs.readFileSync
在运行时加载文件,然后使用JSON.parse
对其进行解析。
const { readFileSync } = require('fs');
const jsonString = readFileSync('test.json').toString()
//.toString() converts the returned Buffer to a string
const obj = JSON.parse(jsonString);
const downloadable = JSON.stringify(obj);
答案 1 :(得分:-1)
我认为require不仅会读取json,还会构造一个节点对象,因此,如果您要使用require,则需要使用合同,并且您可以只拥有所需的属性,例如:
var MyContract = function MyContract() {
this.myproperty1;
this.myProperty2;
}
const obj = require('test.json')
obj = Object.assign(new MyContract(), obj)
const downloadable = JSON.stringfy(obj)
// or if you want to use just an object
const obj = require('test.json')
obj = Object.assign({
myproperty1: '',
myProperty2: ''
}, obj)
const downloadable = JSON.stringfy(obj)
或者如果您不知道结构是什么,可以使用fs包从test.json中读取值并进行解析。