2017-10-12 168 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 
}