如何在我的应用程序中获取 JSON 数据
How to get the JSON data in my app
所以,我想制作一个调用 forecast.io 的 API 的应用程序,以便在我的应用程序中获取天气信息。有人说我要使用 SwiftyJSON 和 Alamofire。我是编程新手,这是我的第一个应用程序,所以我真的不知道该怎么做。这是我现在的代码,但我不知道它是否正确,它可以工作但没有进行调用,我需要输入 JSON 数据以获取 "temperature" 数据:
// Get Weather
let URL = "https://api.forecast.io/forecast/apikey/\(lat),\(long)"
Alamofire.request(.GET, URL, parameters: nil)
.responseJSON { response in
let jsonData: AnyObject?
do {
jsonData = try NSJSONSerialization.JSONObjectWithData(response.data!, options: [])
} catch {
}
}
它只是说 "jsonData" 从未被使用过。这就是我为接到电话而写的全部内容。
一旦有了 jsonData
变量,就可以像常规 NSDictionary
一样使用它,方法是将以下行放在 do
块中第一行
之后
guard let jsonDict = jsonData as? NSDictionary else {return}
如果你想得到当前的预报,你所要做的就是
guard let currentForecast = jsonDict["currently"] as? NSDictionary else {return}
然后您可以使用 this link
获取其属性
guard let temperature = currentForecast["apparentTemperature"] as? Int else {return}
总而言之,您的代码应如下所示
let URL = "https://api.forecast.io/forecast/apikey/\(lat),\(long)"
Alamofire.request(.GET, URL, parameters: nil)
.responseJSON { response in
let jsonData: AnyObject?
do {
jsonData = try NSJSONSerialization.JSONObjectWithData(response.data!, options: [])
guard let jsonDict = jsonData as? NSDictionary else {return}
guard let currentForecast = jsonDict["currently"] as? NSDictionary else {return}
guard let temperature = currentForecast["apparentTemperature"] as? Int else {return}
print(temperature)
} catch {
//TODO: Handle errors
}
}
catch 块用于处理错误,因此如果它无法解析 JSON,您将在此处显示一条警告,指出出现错误。
所以,我想制作一个调用 forecast.io 的 API 的应用程序,以便在我的应用程序中获取天气信息。有人说我要使用 SwiftyJSON 和 Alamofire。我是编程新手,这是我的第一个应用程序,所以我真的不知道该怎么做。这是我现在的代码,但我不知道它是否正确,它可以工作但没有进行调用,我需要输入 JSON 数据以获取 "temperature" 数据:
// Get Weather
let URL = "https://api.forecast.io/forecast/apikey/\(lat),\(long)"
Alamofire.request(.GET, URL, parameters: nil)
.responseJSON { response in
let jsonData: AnyObject?
do {
jsonData = try NSJSONSerialization.JSONObjectWithData(response.data!, options: [])
} catch {
}
}
它只是说 "jsonData" 从未被使用过。这就是我为接到电话而写的全部内容。
一旦有了 jsonData
变量,就可以像常规 NSDictionary
一样使用它,方法是将以下行放在 do
块中第一行
guard let jsonDict = jsonData as? NSDictionary else {return}
如果你想得到当前的预报,你所要做的就是
guard let currentForecast = jsonDict["currently"] as? NSDictionary else {return}
然后您可以使用 this link
获取其属性guard let temperature = currentForecast["apparentTemperature"] as? Int else {return}
总而言之,您的代码应如下所示
let URL = "https://api.forecast.io/forecast/apikey/\(lat),\(long)"
Alamofire.request(.GET, URL, parameters: nil)
.responseJSON { response in
let jsonData: AnyObject?
do {
jsonData = try NSJSONSerialization.JSONObjectWithData(response.data!, options: [])
guard let jsonDict = jsonData as? NSDictionary else {return}
guard let currentForecast = jsonDict["currently"] as? NSDictionary else {return}
guard let temperature = currentForecast["apparentTemperature"] as? Int else {return}
print(temperature)
} catch {
//TODO: Handle errors
}
}
catch 块用于处理错误,因此如果它无法解析 JSON,您将在此处显示一条警告,指出出现错误。