iOS*_*eek -1 json ios nsurlsession swift2
正在寻找与Swift 2和iOS 9联网的有用教程,但似乎该主题没有在线内容.我已经看过WWDC会话网络与NSURLSession但我无法调整iOS9的新API以获取和解析JSON数据的异步方式.我尝试过的:
do {
if let url = NSURL(string: "site/api.php?option=fetchOps"),
let data = NSData(contentsOfURL: url),
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [[String:AnyObject]] {
}
} catch let error as NSError {
print(error.description)
}
Run Code Online (Sandbox Code Playgroud)
请分享您在iOS9和Swift2上的网络体验,任何最佳实践可能是Singleton类的网络和解析可能是一个ORM?
或者如果您想通过自己的方式发送请求:
举个例子,我在这里转换了一个NSString
首先将NSString转换为NSDictionary
static func convert(src: NSString) -> NSDictionary {
// convert String to NSData
let data = src.dataUsingEncoding(NSUTF8StringEncoding)
var error: NSError?
// convert NSData to 'AnyObject'
let anyObj: AnyObject?
do {
anyObj = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions(rawValue: 0))
} catch let error1 as NSError {
error = error1
anyObj = nil
}
if(error != nil) {
// If there is an error parsing JSON, print it to the console
print("JSON Error \(error!.localizedDescription)")
//self.showError()
return NSDictionary()
} else {
return anyObj as! NSDictionary
}
}
Run Code Online (Sandbox Code Playgroud)
然后,像这样使用它
if let name = dictionary["name"] as? String {
self.name = name
}
Run Code Online (Sandbox Code Playgroud)
您可以使用转换后的JSON来创建这样的对象
import Foundation
class Student {
var name="";
init(dictionary: NSDictionary) {
let _NAME = "name"
if let name = dictionary[_NAME] as? String {
self.name = name
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16558 次 |
| 最近记录: |