我正在尝试使用 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),:
在对象的第二个元素之后的标记上出现 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
带有语法错误:
var a='a',b='b',c='c',d='d',e='e',f='f';
{
a:
[a, a, a],
b:
[b, b, b]
}
节点错误:
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;