GET JSON DATA OR ARRAY DATA FROM SERVICE IN SWIFT 2.0
let url = " "
/*-------------------------- Get Json data -------------------------------------------------*/
func loadWebServiceData(){
self. fillTheData(url, callback: self.jsonData, errorCallback: self.showError)
}
func fillTheData(url: String?, callback: (NSDictionary) -> Void, errorCallback: (Void) -> Void){
if url != nil{
if let nsurl = NSURL(string: url!){
let request = NSURLRequest(URL: nsurl)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler:{response, data, error -> Void in
if error == nil{
if let dataDict = self.parseJSON(data!){
callback(dataDict)
}else{
errorCallback()
}
}else{
errorCallback()
}
})
}else{
errorCallback()
}
}else{
errorCallback()
}
}
func parseJSON(data: NSData)->NSDictionary?{
do {
let dataDict = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary
return dataDict
} catch{
//ErrorHandler.Instance.showError()
return nil
}
}
func jsonData(data: NSDictionary){
print("this is an json data: \(data)")
}
/*-------------------------- Get Array data -------------------------------------------------*/
func loadWebServiceData(){
self.fillTheDataFromArray(url, callback: self.arrayData, errorCallback: self.showError)
}
func fillTheDataFromArray(url: String?, callback: (NSArray) -> Void, errorCallback: (Void) -> Void){
if url != nil{
if let nsurl = NSURL(string: url!){
let request = NSURLRequest(URL: nsurl)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler:{response, data, error -> Void in
if error == nil{
if let dataArray = self.parseJSONArray(data!){
callback(dataArray)
}else{
errorCallback()
}
}else{
errorCallback()
}
})
}else{
errorCallback()
}
}else{
errorCallback()
}
}
func parseJSONArray(data: NSData)->NSArray?{
do {
let dataDict = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as? NSArray
return dataDict
} catch let error as NSError {
print("json error: \(error.localizedDescription)")
return nil
}
}
func showError(){
print("error occured")
}
func arrayData(data: NSArray){
print("this is an array data: \(data)")
}
No comments:
Post a Comment