2017-10-12 6 views
-1

J'accède à une méthode HTTP GET dans mon code swift. cette méthode renvoie une variable NSData. Ces données sont essentiellement juste un tableau d'objets json, comme ceci:Convertir NSData en un tableau d'objets JSON

[{"author": "meowmeow", "platform": "Google"}, {"author": "adasd", "platform": "Dropbox"} 

et est stocké dans les données variables. Je souhaite transformer cette variable NSData en un tableau d'objets json auxquels je peux facilement accéder, mais que je ne trouve pas comment faire cela avec swifty json.

J'ai essayé ce qui suit:

let jsonString = NSString(data: data! as! Data, encoding: String.Encoding.utf8.rawValue) 

Mais quand je le fais après:

var jj = JSON.init(parseJson: jsonString!) 
     for j in jj { 
      print(j) 
      print("------") 
} 

Rien n'est imprimé, ce qui implique la méthode JSON.init n'est pas l'analyse de la chaîne et avec succès un retour Tableau pouvant être bouclé. Comment puis-je jeter le NSData dans un tableau d'objets JSON je peux accéder comme:

print(jj[0]["author"]) 
+0

utilisez-vous Swift ou Objective-C? API NSURLSession dans les retours rapides Les données non NSData – suhit

+0

affichent votre code de demande de mise en réseau dans la description – suhit

+1

Pourquoi 'NSString' et' NSData' dans Swift? Ne fais pas ça. Le même code dans Swift natif est considérablement plus court (et plus efficace): 'let jsonString = String (données: data !, encodage: .utf8)' – vadian

Répondre

0

De SwiftyJSON GitHub Page

let json = JSON(data: data) //use this method 
for dict in json { 
    //do the stuff 
}