我正在使用last.fm api来获取艺术家图像,而我正在获取JSON结果,我需要检查’@attr’值.不幸的是,我似乎无法访问此值.结果看起来像:
@H_502_5@{"image":[{
"url":"http:\/\/www.last.fm\/music\/Undefined\/+images\/3040021","format":"jpg","sizes":{"size":{"#text":"http:...jpg","name":"original","width":"397","height":"397"},{"#text":"http:...jpg","name":"large","width":"126","height":"126"},]},"@attr":{"official":"yes"}}
这是我无法达到的最后价值……
有任何想法吗?
我试过[‘@attr’]它并没有’似乎工作 – 只返回undefined.
我正在做一个$.each(obj.image,function(){}) – 并且在我成功获得this.url,this.format等 – 但我没有运气这个[‘@ attr “]
最佳答案
使用bracket notation成员运算符:
@H_502_5@
原文链接:https://www.f2er.com/jquery/428847.htmlvar value = obj[0]['@attr'];
然后您可以通过以下方式访问官方酒店:
@H_502_5@value.official;
要么
@H_502_5@obj[0]['@attr']['official'];
要么
@H_502_5@obj[0]['@attr'].official;
编辑:正如Jonathan所指出的,您发布的JSON结构存在问题,我建议您使用像JSONLint这样的工具验证您的JSON.
但我认为你的意思是这样的:
@H_502_5@var obj = {
"image": [{
"url": "http:\/\/www.last.fm\/music\/Undefined\/+images\/3040021","format": "jpg","sizes": [{
"#text": "http:...jpg","name": "original","width": "397","height": "397"
},{
"#text": "http:...jpg","name": "large","width": "126","height": "126"
}
],"@attr": {
"official": "yes"
}
}]
};
使用该JSON结构,您可以通过以下方式迭代它:
@H_502_5@$.each(obj.image,function () {
alert(this['@attr'].official);
});