0
我该如何使用URLSession获取JSON对象,以便我能够将它从ObjectMapper转换为Map对象?这是我从API服务器获取数据代码:Swift 3 ObjectMapper - 将URLSession结果转换为Map对象失败
func makeGetRequest(completionHandler: @escaping ((AnyObject?) -> Void)) {
let session = URLSession(configuration: .default)
guard let requestUrl = URL(string:buildUrl()) else { return }
var request = URLRequest(url:requestUrl)
//HEADERS
request.addValue("multipart/form-data; charset=utf-8", forHTTPHeaderField: "Content-Type");
let token = CredentialsManager.sharedInstance().token;
if (!(token?.isEmpty)!) {
request.addValue(token!, forHTTPHeaderField: "X-Auth-Token");
};
let task : URLSessionDataTask = session.dataTask(with: request, completionHandler: {(data, response, error) in
guard let data = data, error == nil else { return }
do {
let resultJSON = try JSONSerialization.jsonObject(with: data) as! [[String:AnyObject]]
completionHandler(resultJSON as AnyObject?)
} catch let error as NSError {
// Handle error
}
});
task.resume()
}
这是函数,我呼吁数据是牵强:
public func getUser() {
makeGetRequest() { (result) -> Void in
let resultModel = UserModel(map: result as! Map)
self.resultDelegate.onUserRequestSuccess(model: resultModel!)
}
}
,这里是我的usermodel实现可映射协议:
class UserModel : Mappable {
var id: Int?
var username: String?
required init?(map: Map) {
}
// Mappable
func mapping(map: Map) {
id <- map["id"]
username <- map["username"]
}
}
而且同时呼吁
UserModel(map: result as! Map)
我得到的错误:
Could not cast value of type '__NSDictionaryI' to 'NSArray'