我有一个 POST 请求,如下所示。我需要一些有关如何使用响应数据的帮助。我得到的答复是字典的形式。这里使用的最佳实践是什么?我收到的错误消息是:
Cannot assign value of type 'DataResponse' to type 'String'
func getRequest(){
let urlString = "http://scissors.pythonanywhere.com/getRequest"
Alamofire.request(urlString, method: .post, parameters: ["date": self.weekDays[self.itemSelectedIndex]],encoding: JSONEncoding.default, headers: nil).responseString {
response in
switch response.result {
case .success:
print(response)
var backToString = String(data: response, encoding: String.Encoding.utf8) as String?
break
case .failure(let error):
print(error)
}
}
}
我尝试了 self.bookings = 响应为! String
但它给了我一个警告,说它会失败。也尝试过这个:Alamofire in Swift: converting response data in usable JSON dictionary运气不好。
编辑
这是我从响应中得到的打印结果。
SUCCESS: {
"10:00" = {
booked = false;
name = "";
number = "";
};
"10:30" = {
booked = false;
name = "";
number = "";
};
"11:00" = {
booked = false;
name = "";
number = "";
};
}
最佳答案
我实际上最终使用了这个非常简单易行的方法。就我而言,预订的声明如下: var bookings: NSDictionary = [:]
func getRequest(){
let urlString = "http://scissors.pythonanywhere.com/getRequest"
Alamofire.request(urlString, method: .post, parameters: ["date": self.weekDays[self.itemSelectedIndex]],encoding: JSONEncoding.default, headers: nil).responseJSON {
response in
switch response.result {
case .success(let JSON):
self.bookings = JSON as! NSDictionary
self.tableView.reloadData()
break
case .failure(let error):
print(error)
}
}
}
关于json - 将 DataResponse<String> 转换为可用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50401257/