首页 > 解决方案 > 无法从 iTunes API 的 JSON 获取对象

问题描述

我正在使用 Angular 构建一个音乐应用程序,而对于我使用 Apple iTunes API 的数据。当我获取 JSON 结果时,我无法获取对象属性。

以下是 itune API 返回的数据:

API 返回的数据

我可以渲染一些属性,如类别、id、标题等。但无法渲染在其名称之前有im:im:artist等的属性im:name

这就是我在 html 组件中呈现数据的方式:

// This Works  
<div *ngFor="let track of tracks">{{track.title.label}}</div>

// This does not work 
<div *ngFor="let track of tracks">{{track.im:name.label}}</div>

标签: javascriptjsonangular

解决方案


轨道的 json 似乎很糟糕,但您可以通过以下方式实现。

  1. 如果您相信总有对象track.im:name.label,那么您可以使用以下技巧

    <div *ngFor="let track of tracks">{{track["im:name"].label}}</div>
    
  2. 另一种方式

    <div *ngFor="let track of tracks">{{getLabel(track)}}</div>
    
    getLabel(task){
      if(task["im:name"] && task["im:name"].label){
        return task["im:name"].label
      } else {
        return ""
      }
    }
    

推荐阅读