ファイルがあり、その構造は次のようになります。
({
foo: 'bar',
bar: 'foo'
})
を変数としてNodeJS
取得できるように、ファイルをロードして読み取ろうとしています。object
これを行う最良の方法は何ですか?ファイルの構造を変更できないことに注意してください。
ファイルがあり、その構造は次のようになります。
({
foo: 'bar',
bar: 'foo'
})
を変数としてNodeJS
取得できるように、ファイルをロードして読み取ろうとしています。object
これを行う最良の方法は何ですか?ファイルの構造を変更できないことに注意してください。
ファイルを文字列とeval
その文字列に読み取ることができます。
var fs = require('fs');
var s = fs.readFileSync('myfile.js', 'utf8');
var x = eval(s);
s
必要に応じて、 を呼び出す前に文字列を変更できますeval
。
使用するソリューションの方が優れているというmtsrに同意する必要JSON.parse
があります(セキュリティとおそらくパフォーマンスの両方の観点から)。ただし、オブジェクト リテラルが余分な括弧で囲まれているため、現在のデータ ファイルは JSON 構造を表していません。
{..}
オブジェクト リテラルが常にペアで囲まれていることが確実な場合(..)
は、それらを削除してから、文字列の解析を試みることができます。
m = s.match(/\(([\s\S]+)\)/);
x = JSON.parse(m[1]);
正規表現の[\s\S]+
部分は、改行文字を含むすべてのものと一致します。\(
andの\)
部分は、周囲の括弧と一致します。
私は評価を避けます。試す
JSON.parse()
代わりは。