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

在原生JavaScript中从Audius API的嵌套JSON数据中提取图片URL

如何从Audius API的嵌套JSON结构中提取图片URL并应用到img标签?

没问题,这很好解决!你已经拿到了包含不同尺寸 artwork 的对象,只需要通过对象的键名直接访问对应的图片 URL 就可以了。

核心思路

你看到的track.artwork是一个键值对结构的对象,每个键对应不同尺寸的图片地址。比如你想使用中等尺寸的图,就用track.artwork["480x480"];如果需要高清图,就用track.artwork["1000x1000"],完全根据你的布局需求选择即可。

修改后的完整代码

我已经帮你调整了app.js里的图片标签部分,同时补充了有意义的alt属性(提升页面可访问性):

function fetchData() { 
  fetch("https://audius-discovery-4.cultur3stake.com/v1/users/nkd7P/tracks?app_name=unnecessaryroughnessplayer") 
  .then(response => { 
    if(!response.ok) { 
      throw Error("ERROR"); 
    } 
    return response.json(); 
  }).then(tracks => { 
    const html = tracks.data.map(track =>{ 
      // 可选:处理无artwork的情况,避免报错
      const artworkUrl = track.artwork ? track.artwork['480x480'] : '';
      return ` 
      <div class="track"> 
        <div class="track-title"> 
          <a href="https://audius.co${track.permalink}"> 
            <h2> ${track.user.name} <br/> ${track.title} </h2> 
          </a> 
          <img src="${artworkUrl}" alt="Artwork for ${track.title} by ${track.user.name}" />
        </div> 
        <p>Description: ${track.description}</p> 
        <p>Release Date: ${track.release_date}</p> 
        <p>Duration: ${track.duration}</p> 
        <p>Plays: ${track.play_count}</p> 
        <p>Genre: ${track.genre}</p> 
        <p>Mood: ${track.mood}</p> 
        <p>Tags: ${track.tags}</p> 
        <hr> 
      </div> 
      ` ; 
    }).join(''); 
    document.querySelector("#app").insertAdjacentHTML("afterbegin", html); 
  }).catch(error => { 
    console.log(error); 
  }); 
} 
fetchData();

额外提示

我加了一个artworkUrl的变量来处理特殊情况:如果某些曲目没有 artwork,代码会给src赋值为空字符串,避免页面出现加载错误的图标。你也可以把空字符串换成你的默认图片地址,让页面更美观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 12:52:33