我有这个json:
var myjson = [
{"ID":1, "FullName":"Breese Dantour"},
{"ID":2, "FullName":"Danny Xirjav"},
{"ID":3, "FullName":"Ben Falco"}
]
我试图通过使用数组的密钥抓住它:
var mykey = new array();
mykey.push("ID");
mykey.push("FullName");
var res = "";
for (var i = 0; i < myjson.length; i++) {
var inner;
for (var c=0; c < mykey.length; c++){
inner = inner + "<td>" + myjson[i].mykey[c] + "</td>";
}
res = res + "<tr>" + inner + "</tr>\n";
}
alert(res);
我收到了这个错误:
Error: TypeError: myjson[i].mykey is undefined
我知道这是因为mykey
不是myjson
的关键。但我希望mykey
返回它的值,使其显示为myjson
键
还有其他方法吗?
答案 0 :(得分:2)
试试这个:
var mykey = new array();
mykey.push("ID");
mykey.push("FullName");
var res = "";
for(var i = 0; i < myjson.length; i++){
var inner = "";
for (var c=0; c < mykey.length; c++){
inner = inner+"<td>"+myjson[i][mykey[c]]+"</td>";
}
res = res+"<tr>"+inner+"</tr>\n";
}
alert(res);
答案 1 :(得分:1)
您可以按键获取数组元素:
myjson[i][ mykey[c] ];
答案 2 :(得分:1)
将myjson[i].mykey[c]
替换为myjson[i][mykey[c]]
这可行的原因是点运算符(.
)的优先级高于[]
,因此前一个表达式的计算结果为(myjson[i].mykey)[c]
,因为undefined
{1}}没有属性myjson[i]
。