2017-10-12 208 views
-1

我正在訪問我的swift代碼中的HTTP GET方法。此方法正在返回一個NSData變量。這個數據本質上只是一個json對象的數組,如下所示:將NSData轉換爲JSON對象數組

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

並存儲在變量數據中。

我想將這個NSData變量轉換成一個json對象數組我可以很容易地訪問,但不能弄清楚如何用swifty json來做到這一點。

我曾嘗試以下:

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

但是,當我做到這一點後:

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

無打印,暗示JSON.init方法沒有成功地解析字符串並返回可以循環使用的數組。我怎樣才能投NSData的成JSON對象的數組,我可以訪問,如:

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

你用斯威夫特或Objective-C? NSURLSession API在swift中返回數據不是NSData – suhit

+0

在描述中發佈你的網絡請求代碼 – suhit

+1

爲什麼'NSString'和'NSData'在Swift中?不要這樣做。原生Swift中的相同代碼顯着縮短(並且更高效):'let jsonString = String(data:data !, encoding:.utf8)' – vadian

回答

0

從SwiftyJSON GitHub

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