【发布时间】:2017-10-12 06:10:57
【问题描述】:
我正在我的 swift 代码中访问 HTTP GET 方法。此方法返回一个 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"])
【问题讨论】:
-
你使用的是 Swift 还是 Objective-C? Swift 中的 NSURLSession API 返回数据而不是 NSData
-
在描述中发布您的网络请求代码
-
为什么在 Swift 中使用
NSString和NSData?不要那样做。原生 Swift 中的相同代码显着缩短(并且更高效):let jsonString = String(data: data!, encoding: .utf8)
标签: json swift parsing swifty-json