swift – Alamofire:使用字典数组发送JSON
发布时间:2020-12-14 04:46:12 所属栏目:百科 来源:网络整理
导读:我有一个在 JSON中看起来像这样的数据结构: [{ "value": "1","optionId": "be69fa23-6eca-4e1b-8c78-c01daaa43c88"},{ "value": "0","optionId": "f75da6a9-a34c-4ff6-8070-0d27792073df"}] 基本上它是一系列字典.我宁愿使用默认的Alamofire方法,也不想手动
我有一个在
JSON中看起来像这样的数据结构:
[{ "value": "1","optionId": "be69fa23-6eca-4e1b-8c78-c01daaa43c88" },{ "value": "0","optionId": "f75da6a9-a34c-4ff6-8070-0d27792073df" }] 基本上它是一系列字典.我宁愿使用默认的Alamofire方法,也不想手动构建请求.有没有办法给Alamofire我的参数和Alamofire完成剩下的工作? 如果我手动创建所有内容,我会从服务器收到错误,发送数据不正确. var parameters = [[String:AnyObject]]() for votingOption in votingOptions{ let type = votingOption.votingHeaders.first?.type let parameter = ["optionId":votingOption.optionID,"value": votingOption.votingBoolValue ] parameters.append(parameter) } let jsonData = try! NSJSONSerialization.dataWithJSONObject(parameters,options: []) let json = try! NSJSONSerialization.JSONObjectWithData(jsonData,options: .AllowFragments) if let url = NSURL(string:"myprivateurl"){ let request = NSMutableURLRequest(URL: url) request.setValue("application/json",forHTTPHeaderField: "Content-Type") request.HTTPMethod = Method.POST.rawValue request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(parameters,options: []) AlamofireManager.Configured.request(request) .responseJSON { response in //Handle result } } 解决方法
你可以这样做:
Alamofire.request(.POST,urlPath,parameters: params).responseJSON{ request,response,data in //YOUR_CODE } 参数是[String:AnyObject],是的,Alamofire负责其余的事情. 由于看起来您正在使用经理,您可以这样做 YOUR_ALAMOFIRE_MANAGER.request(.POST,url,JSON in //enter code here } 这是源代码: public func request( method: Method,_ URLString: URLStringConvertible,parameters: [String: AnyObject]? = nil,encoding: ParameterEncoding = .URL,headers: [String: String]? = nil) -> Request { let mutableURLRequest = URLRequest(method,URLString,headers: headers) let encodedURLRequest = encoding.encode(mutableURLRequest,parameters: parameters).0 return request(encodedURLRequest) } 编辑: 由于您的数据当前是[[String:AnyObject]],因此需要对其进行修改,使其格式为[String:AnyObject].你可以这样做的一种方法我做这个[“数据”:[[String:AnyObject]]].你可能不得不改变你的api终点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |