我在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标准的一部分。
答案 0 :(得分:3)
如果你不想eval
表达式,你可以随时抛出一个ES6解析器(如esprima),这样你就可以手动安全地评估你的那些部分。 #39;对此感兴趣。
但正确的方法是首先不要将对象文字用于多行模板字符串,而是将数据存储为JSON。