我有last.fm的api返回的JSON对象,如下所示:
{
"artists": {
"artist": {
"name": "Daft Punk",
"playcount": "494599",
"listeners": "106101",
"mbid": "056e4f3e-d505-4dad-8ec1-d04f521cbb56",
"url": "http://www.last.fm/music/Daft+Punk",
"streamable": "1",
"image": [
{
"#text": "http://userserve-ak.last.fm/serve/34/5463.jpg",
"size": "small"
},
{
"#text": "http://userserve-ak.last.fm/serve/64/5463.jpg",
"size": "medium"
},
{
"#text": "http://userserve-ak.last.fm/serve/126/5463.jpg",
"size": "large"
},
{
"#text": "http://userserve-ak.last.fm/serve/252/5463.jpg",
"size": "extralarge"
},
{
"#text": "http://userserve-ak.last.fm/serve/500/5463/Daft+Punk.jpg",
"size": "mega"
}
]
},
"@attr": {
"page": "1",
"perPage": "1",
"totalPages": "1000",
"total": "1000"
}
}
}
现在我正在尝试从对象获取图像,但图像URL的键是"#text"
。我不知道这个值是如何在Javascript中提取的。我正在使用AngularJS,但任何使用普通javascript的建议也是okei。有没有什么办法可以在对象的键中使用“#”来获取它的值。
非常感谢任何帮助。
干杯:)
答案 0 :(得分:2)
foo['artists']['artist']['image'][0]['#text']
答案 1 :(得分:2)
假设它在obj
var中,这将返回带有图像的数组
var imgSrcArray = obj.artists.artist.image.map(function(image){ return image['#text'] });
就是这样。
如果你想经典地遍历这个数组,用这个:
var images = obj.artists.artist.image;
for(var i=0; i < images.length; i++){
var image = images[i];
var url = image['#text'];
console.log("url: ", url); //Outputs the img url
}
干杯