Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法从iTunes API从JSON获取对象_Javascript_Json_Angular - Fatal编程技术网

Javascript 无法从iTunes API从JSON获取对象

Javascript 无法从iTunes API从JSON获取对象,javascript,json,angular,Javascript,Json,Angular,我正在使用angular构建一个音乐应用程序,对于数据,我正在使用Apple iTunes API。获取JSON结果时,无法获取对象属性 以下是iTunes API返回的数据: 我可以渲染某些属性,如类别、id、标题等,但无法渲染名称前有im:的属性,如im:artist,im:name等 以下是我在html组件中呈现数据的方式: // This Works <div *ngFor="let track of tracks">{{track.title.label}}</

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

以下是iTunes 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>
//这很管用
{{track.title.label}
//这行不通
{{track.im:name.label}

这似乎是一个糟糕的json曲目,但您可以通过以下方式实现

  • 如果您相信始终存在对象
    track.im:name.label
    ,则可以使用下面的技巧

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

    <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 ""
      }
    }
    
    {{getLabel(track)}
    getLabel(任务){
    如果(任务[“im:name”]&任务[“im:name”].标签){
    返回任务[“im:名称”]。标签
    }否则{
    返回“”
    }
    }
    
  • 使用

    {{track['im:name'].label}
    
    <div *ngFor="let track of tracks">{{track['im:name'].label}}</div>