【发布时间】:2016-05-04 13:34:01
【问题描述】:
我正在使用带有 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 标准的一部分。
【问题讨论】:
-
那个字符串是从哪里来的?
-
用双引号替换反引号,你应该可以
JSON.parse它。就目前而言,它不是有效的 JSON。 -
这个字符串inside的反引号not是特殊的,它not是一个ES6多行/模板字符串。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
@GabrielFurstenheim:是否可以编辑此文件以使其中的行是有效的 JSON?
-
也不需要对来自文件的字符串使用插值,仅在解析脚本并且当它具有实际换行符时才需要插值,
\n在普通字符串中仍然可以。
标签: javascript node.js ecmascript-6 multilinestring