我試圖解析這樣的對象,使用的NodeJS:的SyntaxError而EVAL()'荷蘭國際集團的對象
{
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。
爲了解決這個問題,現在我周圍我的對象有:
data = "var obj = " + data + "; obj";
data = "var a=1,b=2,c=3,d=4,e=5,f=6,...;" + data;
有了這樣的,它的工作原理。
的問題是why ?
可選的問題是:你有一個更好的方式來完成我想要什麼?
謝謝! EVAL前
真實數據()調用
data
有語法錯誤:
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;
能否在eval()之前給我們'data'的確切值? –
@ldiqual在'eval()'調用之前編輯來添加工作而不工作的數據。 – Scharron
您的「不工作」數據中沒有任何分配。你只是把'{}'不帶'var obj = {}'。另外,最後一行「工作數據」的「obj」應該是什麼? –