1

我正在使用带有 ES6 的 Node.js v4.2.2。我读了一个文件,该文件代表一个包含多行字符串的对象。我的文件看起来像:

{"a":`b
      c`};

我将文件读入字符串:

var fs = require ('fs');
var my_string = fs.readFileSync(path_to_my_file).toString();

最后,我想从那个字符串中获取它所代表的对象。我能找到的唯一选择是使用 eval:

eval('my_object = ' + my_string);

还有其他方法吗?请注意,这JSON.parse(my_string)不是一个选项,因为多行字符串不是 JSON 标准的一部分。

4

1 回答 1

3

如果你不喜欢eval这个表达式,你总是可以向它抛出一个 ES6 解析器(比如esprima),这样你就可以手动安全地评估你感兴趣的部分。

但正确的方法是首先不要使用带有多行模板字符串的对象文字,而是将数据存储为 JSON。

于 2016-01-27T14:58:19.050 回答