Skip to content

Instantly share code, notes, and snippets.

@thii
Created November 15, 2015 14:10
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thii/85b12e9ba3b0b67dd762 to your computer and use it in GitHub Desktop.
Save thii/85b12e9ba3b0b67dd762 to your computer and use it in GitHub Desktop.
import Alamofire
import SwiftyJSON
extension Request {
public static func SwiftyJSONResponseSerializer(
options options: NSJSONReadingOptions = .AllowFragments)
-> ResponseSerializer<JSON, NSError>
{
return ResponseSerializer { _, _, data, error in
guard error == nil else { return .Failure(error!) }
guard let validData = data where validData.length > 0 else {
let failureReason = "JSON could not be serialized. Input data was nil or zero length."
let error = Error.errorWithCode(.JSONSerializationFailed, failureReason: failureReason)
return .Failure(error)
}
let json:JSON = SwiftyJSON.JSON(data: validData)
if let jsonError = json.error {
return Result.Failure(jsonError)
}
return Result.Success(json)
}
}
public func responseSwiftyJSON(
options options: NSJSONReadingOptions = .AllowFragments,
completionHandler: Response<JSON, NSError> -> Void)
-> Self
{
return response(
responseSerializer: Request.SwiftyJSONResponseSerializer(options: options),
completionHandler: completionHandler
)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment