nodejs を使用して、そのようなオブジェクトを解析しようとしています:
{
1: [a, b, c],
2: [d, e, f],
...
}
a,b,c,d,e,f
値が定義された変数を使用します。
オブジェクトが実際に読み取り可能(および人間が書き込み可能)になるように、私は本当にそれを望んでいます。
したがって、私が現在行っているのは、前のオブジェクトを含むファイルを開き、変数data
にデータを入れてから注入することです
var a=1,b=2,c=3,d=4,e=5,f=6,...;
実際のコンテンツの直前:
data = "var a=1,b=2,c=3,d=4,e=5,f=6,...;" + data;
最後にeval()
、使用可能なオブジェクトを取得するために使用しています:
my_obj = eval(data);
ただし、これは (少なくとも nodejs を使用して) 機能せず:
、オブジェクトの 2 番目の要素の後のトークンに SyntaxError が発生します (前の例の の直後2
)。
これを修正するために、オブジェクトを次のように囲んでいます:
data = "var obj = " + data + "; obj";
data = "var a=1,b=2,c=3,d=4,e=5,f=6,...;" + data;
それで、それは機能します。
質問はwhy ?
オプションの質問は次のとおりです。私が望むことを達成するためのより良い方法はありますか?
ありがとう!
eval() 呼び出し前の実データ
data
SyntaxError で:
var a='a',b='b',c='c',d='d',e='e',f='f';
{
a:
[a, a, a],
b:
[b, b, b]
}
Nodejs エラー:
undefined:6
b:
^
SyntaxError: Unexpected token :
働くdata
:
var a='a',b='b',c='c',d='d',e='e',f='f';
var obj = {
a:
[a, a, a],
b:
[b, b, b]
}
; obj;