在这种javascript情况下,除了eval还有其他选项吗?

在这种javascript情况下,除了eval还有其他选项吗?,javascript,json,eval,Javascript,Json,Eval,我需要动态访问json文件,并使用以下代码。在本例中,“bpicsel”和“temp”是变量。最终结果类似于“数据[0].extit1” var title="data["+bpicsel+"].extit"+temp; $.getJSON('labs.json', function(data){ title2 = eval(title); }); 这是有效的——但我经常被告知不要使用eval——有更好的方法吗?这应该很有效 var title = data[bpicsel][

我需要动态访问json文件,并使用以下代码。在本例中,“bpicsel”和“temp”是变量。最终结果类似于“数据[0].extit1”

var title="data["+bpicsel+"].extit"+temp;
$.getJSON('labs.json', function(data){
    title2 = eval(title);
    });

这是有效的——但我经常被告知不要使用eval——有更好的方法吗?

这应该很有效

var title = data[bpicsel]['extit'+temp];
现在按如下方式获取数据:

$.getJSON('labs.json',函数(数据){ var title=data[bpicsel]['extit'+temp];//此处不需要求值
});

这应该很好用

var title = data[bpicsel]['extit'+temp];
现在按如下方式获取数据:

$.getJSON('labs.json',函数(数据){ var title=data[bpicsel]['extit'+temp];//此处不需要求值
});

var title=data.bpicsel[“extit”+temp]
在getJSON调用中,除了
eval
@megawac之外,还有另外一种方法。谢谢您的回复。这似乎不起作用-它创建了我需要的字符串,但没有在函数中计算-它没有从我需要访问的json文件中提取条目。例如,它生成数据[0].extit1,而不是给我该位置的值。
var title=data.bpicsel[“extit”+temp]
在getJSON调用中,除了
eval
@megawac之外,还有另外一种方法。谢谢您的回复。这似乎不起作用-它创建了我需要的字符串,但没有在函数中计算-它没有从我需要访问的json文件中提取条目。例如,它生成数据[0]。extit1,而不是在该位置给我值。感谢您的回复,但与megawac答案一样,这似乎不起作用-它创建了我需要的字符串,但没有在函数中计算-它不会从我需要访问的json文件中提取条目。例如,它生成数据[0]。extit1而不是在该位置给我值。很抱歉,我意识到您应该使用
title2=data[bpicsel]['extit'+temp]
。这有用吗?这也可能对你有所帮助:谢谢!成功了。出于某种原因,使用var title=blahblah不起作用-可能是范围?是的,范围会导致这个问题。另外,数据变量在getJSON完成获取并传递到匿名函数之前是不可用的。谢谢回复,但与megawac应答一样,这似乎不起作用-它创建了我需要的字符串,但没有在函数中计算-它不会从我需要访问的json文件中提取条目。例如,它生成数据[0]。extit1而不是在该位置给我值。很抱歉,我意识到您应该使用
title2=data[bpicsel]['extit'+temp]
。这有用吗?这也可能对你有所帮助:谢谢!成功了。出于某种原因,使用var title=blahblah不起作用-可能是范围?是的,范围会导致这个问题。此外,在getJSON完成获取并传递到匿名函数之前,数据变量不可用