Swift3 使用Alamofire和SwiftyJSON解析从服务器返回的数据,返回的数据类型是什么?
我希望我能正确地问这个问题: 我使用Alamofire和SwiftyJSON来管理从服务器获取的JSON文件。 我在理解Swift3 使用Alamofire和SwiftyJSON解析从服务器返回的数据,返回的数据类型是什么?,swift3,alamofire,swifty-json,Swift3,Alamofire,Swifty Json,我希望我能正确地问这个问题: 我使用Alamofire和SwiftyJSON来管理从服务器获取的JSON文件。 我在理解response.result.value的类型、如何将其强制转换为对象方面存在问题,我可以使用SwiftyJSON的JSON(数据:数据)构造函数来构造它。 这是我使用Alamofire请求的代码: func performRequest() { // parameters["retry_count"] = retryNum if let _ =
response.result.value
的类型、如何将其强制转换为对象方面存在问题,我可以使用SwiftyJSON的JSON(数据:数据)
构造函数来构造它。
这是我使用Alamofire请求的代码:
func performRequest() {
// parameters["retry_count"] = retryNum
if let _ = host, let path = path {
let request = Alamofire.request(HOST + path, method: method, parameters: parameters, headers: headers)
request.responseJSON { response in
print("-----")
print(response.response?.statusCode)
print("-----")
// check if responseJSON already has an error
// e.g., no network connection
if let json = response.result.value {
print("--------")
print(json)
print("--------")
}
guard response.result.error == nil else {
print(response.result.error?.localizedDescription ?? "Response Error")
self.completionHandler?(response.result.isSuccess, nil)
self.retryRequest()
return
}
// make sure we got JSON and it's a dictionary
guard let json = response.result.value as? [String: AnyObject] else {
print("didn't get dictionary object as JSON from API")
self.completionHandler?(response.result.isSuccess, nil)
self.retryRequest()
return
}
// make sure status code is 200
guard response.response?.statusCode == 200 else {
// handle status code
self.completionHandler?(response.result.isSuccess, nil)
return
}
self.completionHandler?(response.result.isSuccess, json)
RequestsQueue.sharedInstance.sema.signal()
}
}
此打印结果如下:
{
numOfShiftsInDay = 3;
shifts = (
{
endTime = "14:00";
startTime = "07:30";
},
{
endTime = "20:00";
startTime = "13:30";
},
{
endTime = "02:00";
startTime = "19:30";
}
);
}
此数据类型是[字符串:AnyObject]
我想用它来构造一个SwiftyJSON对象,因为使用SwiftyJSON方法解析数据更容易
这是我试图解析它然后使用它的代码,但显然它不起作用:
let json = JSON(data: data)
我发现这个编译错误:
Cannot convert value of type '[String : AnyObject]?' to expected argument type 'Data'
那么我应该怎么做呢?您需要使用
JSON(数据)
而不是JSON(数据:数据)
,因为这init(数据:)
需要data
作为参数
更改行
let json = JSON(data: data)
至
let json = JSON(data)
作品这有多简单