0
我希望我能夠正確地問這個問題: 我使用Alamofire和SwiftyJSON來管理從服務器獲得的JSON文件。 我在理解response.result.value
類型時遇到了問題,如何將它轉換爲對象,我可以使用SwiftyJSON的JSON(data: data)
構造函數構造它。 這是我的用於使用Alamofire請求代碼:使用Alamofire和SwiftyJSON解析從服務器返回的數據,返回的數據類型是什麼?
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";
}
);
}
此數據類型是一個[String: AnyObject]
。
我想用它來構建一個SwiftyJSON JSON對象,因爲它是我更容易使用SwiftyJSON方法分析數據..
這是我嘗試解析它,然後將代碼中使用它,但它明顯不工作:
let json = JSON(data: data)
我得到這個編譯錯誤:
Cannot convert value of type '[String : AnyObject]?' to expected argument type 'Data'
那麼應該怎麼去呢?
作品。這很簡單 – Eyzuky