JSON解析/ stringfy添加额外的数据

时间:2019-09-20 08:55:49

标签: javascript json

我要像下面那样导入json文件,并将其解析后转换为字符串:

const obj = require('test.json')
const downloadable = JSON.stringify(obj)

但是,上面的可下载变量包含额外的属性,例如下面的属性,原始json文件没有这些属性

"__fnct": [
            null
          ]

"_render": true

这是怎么回事,我如何找回原始JSON文件内容?

2 个答案:

答案 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中读取值并进行解析。