2016-04-26 9 views
0

Ich rufe die Spotify-API-Methode auf, um die gespeicherten Titel eines Benutzers abzurufen. Während die Rückgabedaten Parsen, nenne ichSpotify gibt ungültige NSDictionary zurück

let jsonObject = try NSJSONSerialization.JSONObjectWithData(dataFromNetwork, options: []) as! NSDictionary 

Als ich das Ergebnis, das ich bekommen ausdrucken:

{ 
href = "https://api.spotify.com/v1/me/tracks?offset=0&limit=20"; 
items =  (
      { 
     "added_at" = "2016-04-17T18:35:07Z"; 
     track =    { 
      album =     { 
       "album_type" = album; 
       "available_markets" = 
    .... 
} 

Einige Tasten sind keine Strings. Wenn ich versuche, durch die Container zu navigieren, werden Fehler zurückgegeben.

ich zum ersten Mal in die Liste der Tracks mit navigieren:

let tracks = jsonObject["items"] as! [NSDictionary] 

Dieser Codefehler nicht erzeugen. Allerdings, wenn ich durch das Array iterieren, ich versuche, den „Namen“ Schlüssel für die Spur zuzugreifen:

let title = track["name"] as! String 

Dieser Code das Programm stürzt ab, und wenn ich mir die JSON:

name = <redacted> 

Es Es gibt keine doppelten Anführungszeichen um den Schlüssel oder den Wert herum.

+0

Sie diese Zeichenfolgen codieren müssen –

+0

wie kann ich das tun? – genghiskhan

+0

Welcher Schlüssel ist keine Zeichenkette? Wie haben Sie das bestätigt? – Larme

Antwort

1

Diese Linie ist ein wenig zu absolut:

let title = track["name"] as! String 

es Wechsel zu einer „if let“ Aussage:

if let title = track["name"] as? String 
{ 
    // do something if it's a valid title 
Verwandte Themen