【发布时间】:2016-02-08 16:14:36
【问题描述】:
我有工作 json 解析代码,当我举个例子时,post["name"] as?字符串给出输出 Optional("John")
我只想要输出 = 约翰
我的代码在这里
func post(url : String, completionHandler : ((success : Int, message : String) -> Void)) {
guard let url = NSURL(string: url as String) else {
return
}
let urlRequest = NSURLRequest(URL: url)
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)
let task = session.dataTaskWithRequest(urlRequest, completionHandler: { (data, response, error) in
guard let responseData = data else {
return
}
guard error == nil else {
print(error)
return
}
let post: NSDictionary
do {
post = try NSJSONSerialization.JSONObjectWithData(responseData,
options: []) as! NSDictionary
} catch {
return
}
// Add user limits to Session
let name = post["name"] as? String
print(name) // Here gives output Optional("John")
let numberFromString = Int((post["success"] as? String)!)
completionHandler(success: (numberFromString)!, message: (post["message"] as? String)!)
})
task.resume()
}
您可以在此处查看我的所有工作代码。 我只想要 output = John ,
谢谢。
【问题讨论】:
-
当然它给出了一个可选的。 您的代码完全按照您的指示行事。此外,你的 Do-Try-Catch 是错误的(强制下垂可能会崩溃,它不会被 catch 抓住)。您需要进一步研究 Swift Optionals 的基础知识:developer.apple.com/library/ios/documentation/Swift/Conceptual/…
-
@dzk 没有人我尝试但不改变
-
@EricD。我该如何更改该代码 Eric 任何想法?
标签: ios json swift nsdictionary