[英]How to use a variable as an index to get a specific value out of a JSON array in Javascript?
我只是想从JSON数组中找出一个特定的值。
JSON数组示例:
{
"00002": {
"Job Number": "00002",
"Company": "Corporate",
"Supervisor": "Great Person",
"Date Input": "2016-01-07"
},
"00003": {
"Job Number": "00003",
"Company": "SmallGuy",
"Supervisor": "Awful Person",
"Date Input": "2012-03-05"
}
}
这适用于Javascript:
alert(javascript_array["00002"].Company);
但我想使用动态变量来调用记录,如下所示:
var my_variable = 00002;
//OR I've tried:
var my_variable = "'"+00002+"'";
alert(javascript_array[my_variable].Company); //DOES NOT WORK. UNDEFINED??
无论我做什么,我都不能使用可变的中阵调用。
请帮助!
使用字符串作为键。
var my_variable = '00002';
var object = { "00002": { "Job Number": "00002", "Company": "Corporate", "Supervisor": "Great Person", "Date Input": "2016-01-07" }, "00003": { "Job Number": "00003", "Company": "SmallGuy", "Supervisor": "Awful Person", "Date Input": "2012-03-05" } } my_variable = '00002'; document.write(object[my_variable].Company);
要从对象获取所有键,可以使用Object.keys()
:
var object = { "00002": { "Job Number": "00002", "Company": "Corporate", "Supervisor": "Great Person", "Date Input": "2016-01-07" }, "00003": { "Job Number": "00003", "Company": "SmallGuy", "Supervisor": "Awful Person", "Date Input": "2012-03-05" } }, keys = Object.keys(object); keys.forEach(function (k) { document.write(object[k].Company + '<br>'); });
你的密钥是一个字符串,但你的变量不是,所以没有匹配。 只要用这个:
var my_variable = "00002";
要访问JSON对象的关键项,您需要使用字符串,但如果不是,它将尝试使用.toString()
将值转换为字符串。 对于您的第一种情况,您尝试定义一个数字:
var my_variable = 00002;
虽然00002
不是数字的有效值,但它将包含值2
,并转换为字符串,它是"2"
。 在你的JSON中没有这样的javascript_array["2"]
。 第二种情况有类似的问题:
"'"+00002+"'" => "'"+2+"'" => "'2'"
还有没有这样的javascript_array["'2'"]
,以及你添加不需要的引号'...'
。 在这种情况下( 正如其他人指出的那样 )只需将my_variable
定义为值为"00002"
的字符串。
var my_variable = "00002";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.