我有一个文件,它的结构是这样的:
({
foo: 'bar',
bar: 'foo'
})
我正在尝试加载和读取文件,NodeJS
以便我可以将其object
作为变量;最好的方法是什么?请注意,我无法更改文件的结构。
我有一个文件,它的结构是这样的:
({
foo: 'bar',
bar: 'foo'
})
我正在尝试加载和读取文件,NodeJS
以便我可以将其object
作为变量;最好的方法是什么?请注意,我无法更改文件的结构。
您可以将文件读入一个字符串和eval
该字符串:
var fs = require('fs');
var s = fs.readFileSync('myfile.js', 'utf8');
var x = eval(s);
s
如有必要,您可以在调用之前修改字符串eval
。
我必须同意mtsr的观点,即使用的解决方案JSON.parse
更好(无论是在安全性方面还是在性能方面)。但是,由于对象文字周围有额外的括号,当前数据文件不代表 JSON 结构。
如果您确定对象文字{..}
总是被一(..)
对包围,您可以删除它们,然后尝试解析字符串:
m = s.match(/\(([\s\S]+)\)/);
x = JSON.parse(m[1]);
正则表达式的[\s\S]+
部分匹配任何内容,包括换行符。\(
and\)
部分匹配周围的括号。
我会避免评估。尝试
JSON.parse()
反而。