2016-11-06 3 views
0

Ich habe diese json:Zugang JSON-Daten - undefined

{ 
"total": 1, 
"per_page": "10", 
"current_page": 1, 
"last_page": 1, 
"next_page_url": null, 
"prev_page_url": null, 
"from": 1, 
"to": 1, 
"data": [ 
    { 
     "id": 2, 
     "name": "Artista di prova", 
     "artist_hash": "Gqrrx6NrtqqMpvEN", 
     "spotify_followers": null, 
     "spotify_popularity": 66, 
     "image_small": null, 
     "image_large": null, 
     "fully_scraped": 0, 
     "updated_at": "2016-11-06 08:21:02", 
     "bio": "", 
     "wiki_image_large": null, 
     "wiki_image_small": null, 
     "tracks": [ 
      { 
       "id": 1, 
       "name": "Traccia di prova", 
       "album_name": "Album di prova", 
       "number": 1, 
       "duration": 18133, 
       "artists": [ 
        "Artista di prova" 
       ], 
       "youtube_id": null, 
       "spotify_popularity": 50, 
       "album_id": 1, 
       "temp_id": null, 
       "url": "http://myapp.app/track/1/mov/stream", 
       "artist_id": 2 
      }, 
      { 
       "id": 3, 
       "name": "Traccia di prova 2", 
       "album_name": "Album di prova", 
       "number": 1, 
       "duration": 18133, 
       "artists": [ 
        "Artista di prova" 
       ], 
       "youtube_id": null, 
       "spotify_popularity": 50, 
       "album_id": 1, 
       "temp_id": null, 
       "url": "http://myapp.app/track/1/mov/stream", 
       "artist_id": 2 
      } 
     ] 
    } 
] 

}

Ich muss das tracks Feld zuzugreifen und alle Daten zu erhalten.
Ich habe versucht, mit:

$http.get('artist', {params:params}).success(function(response) { 
      $scope.items = response.data; 
      $scope.tracks = response.data.tracks; 

      console.log($scope.tracks); 


     }) 
    }; 

Aber ich undefined bekommen.

Wie kann ich auf das Feld tracks zugreifen?

+0

Verwenden Sie 'response.data [0] .tracks' –

Antwort

1

data Eigenschaft der Antwort ist ein Array, so müssen Sie für den Zugriff durch den Index:

response.data[0].tracks; 
+1

So einfach ... danke –

0

Denken Sie daran, dass tracks ist ein Array von Objekten und auch daran erinnern, dass es unter der data Schlüssel sitzt die auch eine Anordnung. Der naive Weg besteht darin, alle Daten mit ihrem jeweiligen Index zu erhalten: response.data[0].tracks[anotherIndex], um ein Objekt im Array abzurufen, und response.data[0].tracks, um das Array zu protokollieren. In einem realen Szenario jedoch möchten Sie möglicherweise die data und tracks ordnungsgemäß durchlaufen und ihre Werte auf Ihrer Komponente rendern.