我的意思是说我有JSON数据:
[{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}]
我想做这样的事情:
var x = "ADAM";
alert(data.x.TEST);
答案 0 :(得分:20)
var data = [{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}],
x = "ADAM";
alert(data[0][x].TEST);
答案 1 :(得分:5)
由于javascripts中的对象就像hashmaps(或关联数组)一样处理,你可以只做数据['adam']。就像你可以做data.adam.TEST一样。如果你有一个变量索引,只需使用[]表示法。
var data = [{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}]
alert(data[0].ADAM.TEST);
alert(data[0]['ADAM'].TEST)
如果你这样做
var data = {"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}};
您可以使用data.ADAM.TEST和数据['ADAM']访问它。测试
答案 2 :(得分:0)
这不会起作用,因为您将x
设置为字符串对象,而不是从数组中访问值:
alert(data[0]["ADAM"].TEST);
答案 3 :(得分:0)
var data = [{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}],
x = "ADAM";
alert(data[x].TEST);
这对我有用。这样,您可以将变量传递给函数,并避免重复代码。
function yourFunction(varName, elementName){
//json GET code setup
document.getElementById(elementName).innerHTML = data[varName].key1 + " " + data.[varName].key2;
}