Swift 无法使用alamofire打印json值
我试图用flickr API获取数据,我用Alamofire和swiftyJSON编写了一个简单的代码,从flickr获取数据,但我可以打印数据大小,但当我尝试打印json时,我的Swift 无法使用alamofire打印json值,swift,alamofire,flickr,swifty-json,Swift,Alamofire,Flickr,Swifty Json,我试图用flickr API获取数据,我用Alamofire和swiftyJSON编写了一个简单的代码,从flickr获取数据,但我可以打印数据大小,但当我尝试打印json时,我的catch块会运行。我的代码如下所示 func getPhotos(completion: @escaping CompletionHandler) -> Void { let parameter: [String: Any] = [ "method": PHOTOS_M
catch
块会运行。我的代码如下所示
func getPhotos(completion: @escaping CompletionHandler) -> Void {
let parameter: [String: Any] = [
"method": PHOTOS_METHOD,
"api_key": FLICKR_API_KEY,
"per_page": PER_PAGE,
"page": PAGE,
"format": FORMAT_TYPE,
"nojsoncallback": JSON_CALLBACK]
Alamofire.request(FLICKR_URL, method: .get, parameters: parameter, encoding: JSONEncoding.default, headers: HEADER).responseString { (response) in
if response.result.error == nil {
guard let data = response.data else {return}
do {
if let json = try JSON(data: data).array {
print(json)
}
completion(true)
} catch {
print("eroorrrre")
completion(false)
}
print("CALL CORRECT")
print(data)
completion(true)
}
else {
completion(false)
debugPrint(response.result.error as Any)
}
}
}
我的控制台日志
eroorrrre
CALL CORRECT
128 bytes
我不确定我在这里做错了什么,任何帮助都会被感激的试试这个
Alamofire.request(FLICKR_URL, method: .get, parameters: parameter, headers: HEADER).responseJSON { response in // call responseJSON instead of responseString
if response.result.isSuccess { // If http request is success
let json: JSON = JSON(response.result.value!) // JSON format from SwiftyJSON (I suppose you are using it)
guard let data = json.array else { // You suppose that json is array of objects
print("Unexpected JSON format")
completion(false)
}
print(data)
completion(true)
} else {
print(response.error)
completion(false)
}
}
永远不要打印无意义的文本字符串,如catch子句中的
eroorrre
,请打印error
实例。最有可能的是,它显示了你在这里做错了什么。如果出现错误,您将调用completion
两次。不要这样做。注意到谢谢我会更正谢谢,这很好,但我的代码不起作用的原因是什么?我一直在使用它,而且它一直都是works@King在您的案例中,response.data对于JSONhi的格式不正确,请帮助检查此问题