如何使用 javascript 变量访问 JSON 对象
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6010309/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How do I access a JSON object using a javascript variable
提问by Rudacles
What I mean by that is say I have JSON data as such:
我的意思是说我有这样的 JSON 数据:
[{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}]
and I want to do something like this:
我想做这样的事情:
var x = "ADAM";
alert(data.x.TEST);
回答by n0nick
var data = [{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}],
x = "ADAM";
alert(data[0][x].TEST);
回答by DoXicK
Since objects in javascripts are handled just like hashmaps (or associative arrays) you can just do data['adam'].TEST just like you could do data.adam.TEST. If you have a variable index, just go with the [] notation.
由于javascripts中的对象就像hashmap(或关联数组)一样处理,你可以像data.adam.TEST一样执行data['adam'].TEST。如果您有一个变量索引,只需使用 [] 表示法。
var data = [{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}]
alert(data[0].ADAM.TEST);
alert(data[0]['ADAM'].TEST)
if you just do
如果你只是这样做
var data = {"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}};
you could access it using data.ADAM.TEST and data['ADAM'].TEST
您可以使用 data.ADAM.TEST 和 data['ADAM'].TEST 访问它
回答by Ceterisdev
var data = [{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}],
x = "ADAM";
alert(data[x].TEST);
This is what worked for me. This way you can pass in a variable to the function and avoid repeating you code.
这对我有用。通过这种方式,您可以将变量传递给函数并避免重复代码。
function yourFunction(varName, elementName){
//json GET code setup
document.getElementById(elementName).innerHTML = data[varName].key1 + " " + data.[varName].key2;
}
回答by Matthew Abbott
That won't work as you're setting x
to be a string object, no accessing the value from your array:
当您设置x
为字符串对象时,这将不起作用,无法访问数组中的值:
alert(data[0]["ADAM"].TEST);