我正在尝试从JSON响应中检索一些数据,但这似乎不起作用:
我的javascript代码:
function recommend(response){
var recommendedList = eval('(' + response.responseText + ')');
$H(recommendedList).each(function(item){
alert(item.artist);
});
}
我想要的是从JSON响应中检索每个艺术家的值。
,JSON响应的格式为:
[
{"artist":"artist1","location":{"lat":"50.952226","lng":"5.34832","ID":28}},
{"artist":"artist2","location":{"lat":"52.362287","lng":"4.883965","ID":32}},
...
]
一点帮助会很棒。谢谢!
答案 0 :(得分:3)
我不确定你的$H()
函数应该做什么(以及它的存在makes me very sad),但这个与框架无关的代码似乎可以完成工作:
for (var index = 0; index < recommendedList.length; index++) {
alert(recommendedList[index].artist);
}
以下是一个工作示例:http://jsfiddle.net/VgPy5/
另外,我确信你会因为那样使用eval()
而受到严厉批评。您可以考虑使用JSON.parse()代替。
答案 1 :(得分:1)
从“$ H()”猜测你正在使用原型,我只是摆脱了“$ H()”因为数组应该已经可以迭代了。
recommendedList.each(function(item) {
alert(item.artist);
});
答案 2 :(得分:1)
当您需要简单的东西时,请避免使用框架功能。
for(i=0; i<recommendedList.length; i++) {
alert(recommendedList[i].artist);
}
答案 3 :(得分:0)
http://www.prototypejs.org/api/hash/each
pairs作为迭代器的第一个参数传递,形式为 具有两个属性的对象:
key,这是键名作为String
值,这是相应的值(并且可能是未定义的)
所以你的item
实际上是关键。相反,迭代如:
$H(recommendedList).each(function(key, item){
alert(item.artist);
});