如何在 ES6 中解析带有多行字符串的对象?

How can I parse objects with multiline strings in ES6?

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

{"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 标准的一部分。

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

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