当JSON数据包含在带有require()的Node.js文件中时,是将其视为通用对象还是特殊情况?
当使用当JSON数据包含在带有require()的Node.js文件中时,是将其视为通用对象还是特殊情况?,node.js,json,Node.js,Json,当使用require()将JSON数据导入到Node.js时,它的功能似乎与一般对象类似。例如,下面的代码按预期工作 const jsonData = require('./randomData.json'); for(property in jsonData) { console.log(property); } 然而,导入的JSON是否已成为一个通用对象,还是一个特例?例如,JS包括数组,以及类似数组的对象。是这样吗?我想您对JSON.parse感到困惑,导入的对象是JSON,但
require()
将JSON
数据导入到Node.js
时,它的功能似乎与一般对象类似。例如,下面的代码按预期工作
const jsonData = require('./randomData.json');
for(property in jsonData) {
console.log(property);
}
然而,导入的
JSON
是否已成为一个通用对象,还是一个特例?例如,JS包括数组
,以及类似数组的对象
。是这样吗?我想您对JSON.parse感到困惑,导入的对象是JSON,但是JSON.parse将字符串作为参数并将其转换为JSON,您将其作为参数。require('./randomData.JSON')的返回值与您执行的JSON.parse(fs.readFileSync)相同(require.resolve('./randomData.json'))
返回值已经被解析。使用require而不是这个的主要效果是json被缓存在模块数组中。哇!好吧,你说得对,我倒过来了。我最好在问题中解决这个问题。至于使用require导入json,结果(jsonData)是一个普通的旧JS对象。唯一需要注意的是require只会读取文件一次,然后缓存结果,因此如果您进一步更改文件,如果您再次需要它,这些更改将不会反映出来。它是一个对象。