You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript从last.fm API获取专辑超大图URL遇object Object问题求助

解决last.fm API获取专辑'extralarge'图片URL的问题

嘿,我之前也踩过这个坑!出现object Object或者object%20Object的原因很明确——你直接把包含图片信息的嵌套对象/数组当成字符串输出了,没有正确访问到具体的URL属性。

先搞懂API返回的结构

last.fm的user.getRecentTracks(获取最近播放歌曲)接口返回的每个track里,专辑图片是存在album.image数组里的,每个数组项是一个包含size(尺寸)和#text(图片URL)的对象,结构大概是这样:

{
  "track": {
    "album": {
      "image": [
        {"#text": "https://...small.jpg", "size": "small"},
        {"#text": "https://...medium.jpg", "size": "medium"},
        {"#text": "https://...large.jpg", "size": "large"},
        {"#text": "https://...extralarge.jpg", "size": "extralarge"}
      ]
    }
  }
}

精准获取'extralarge'图片的方法

根据你用的语言,这里给两种常见实现:

JavaScript示例

// 假设你已经通过API拿到了最近播放的track对象
const recentTrack = await fetchYourRecentTrack(); // 替换成你的API请求逻辑

// 从image数组里筛选出extralarge尺寸的项
const extralargeImg = recentTrack.album.image.find(img => img.size === 'extralarge');

// 安全获取URL,避免无图片时报错
const albumImgUrl = extralargeImg ? extralargeImg['#text'] : 'https://你的默认图片URL';

Python示例

# 假设你已经通过API拿到了最近播放的track字典
recent_track = get_recent_track() # 替换成你的API请求逻辑

# 遍历image列表,找到extralarge尺寸的图片
extralarge_img = next((img for img in recent_track['album']['image'] if img['size'] == 'extralarge'), None)

# 安全获取URL
album_img_url = extralarge_img['#text'] if extralarge_img else 'https://你的默认图片URL'

关键注意点

  • 一定要做空值判断:有些歌曲可能没有专辑封面,这时候extralargeImg会是undefined(JS)或None(Python),直接取属性会报错。
  • 别直接把对象转字符串:比如JS里console.log('图片:' + recentTrack.album.image)会把数组转成[object Object],URL编码后就变成object%20Object,这就是你看到的错误结果。

内容的提问来源于stack exchange,提问作者PlGGS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:11:48