I'm attempting to Promise a Json object.
However, JSONSerialization.jsonObject isn't accepting any of my parameters..
class func deserialize<T>(data: Data) -> Promise<T> {
let deserialized = try! JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments)
String(data: data, encoding: String.Encoding.utf8)
// Deserialize or try as String
guard let object = deserialized else {
return Promise<T>(error: APIError.InvalidJSON(data) as Error)
}
// Cast as T
guard let objectT = object as? T else {
return Promise<T>(error: APIError.JSONTypeMismatch(object, T.self))
}
return Promise(objectT)
}
I'm receiving two errors:
let desserialized = try! JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments)
"Cannot invoke 'jsonObject' with an argument list of type '(with: Data, options: JSONSerialization.ReadingOptions)'"
String(data: data, encoding: String.Encoding.utf8)
"Cannot convert value of type 'Data' to expected argument type 'Data'"