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 に答える