我正在开发一款iOS应用程序,需要从此URL获取数据。
据我所见,这个URL包含JSON数据,我不知道是否需要解析它,也不知道如何获取这些JSON数据。
以下是我的代码:
import UIKit
import SwiftyJSON
typealias ServiceResponse = (ApiResponseData, NSError?) -> Void
class ApiManager: NSObject {
var session:URLSession? = nil
var urlRequest:URLRequest? = nil
override init(){
super.init()
urlRequest = URLRequest(url: URL(string:"https://dl.dropboxusercontent.com/s/2iodh4vg0eortkl/facts.json")!)
urlRequest?.addValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
session = URLSession(configuration: .default)
}
func callRestApiToFetchDetails(onCompletion: @escaping ServiceResponse) {
let task = session?.dataTask(with: urlRequest!, completionHandler: {data, response, error -> Void in
print("Response = \(data)")
do {
let jsonData = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! NSDictionary
// Do Stuff
print("\(jsonData)")
} catch {
// handle error
print("Error in parsing - \(error)")
}
})
task?.resume()
}
}
但是我在解析时遇到错误。
} catch (let error) { print("解析错误 - \(error)")
- Lukas Würzburger(let error)
部分,catch
块会自动创建一个error
变量,所以你可以直接写catch { print(error)}
。 - Dávid PásztorCodable
协议),为什么不使用它的方法来解码JSON响应呢? - Dávid Pásztor