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

时间:2016-01-27 14:30:50

标签: javascript node.js ecmascript-6 multilinestring

我在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标准的一部分。

1 个答案:

答案 0 :(得分:3)

如果你不想eval表达式,你可以随时抛出一个ES6解析器(如esprima),这样你就可以手动安全地评估你的那些部分。 #39;对此感兴趣。

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