【发布时间】:2016-10-28 13:23:00
【问题描述】:
我是 swift 和编程新手,我正在尝试在 Alamofire 和 SwiftyJSON 的帮助下解析 JSON,如果 JSON 文件很简单,我没有问题并且工作良好,但是当我有类似 Dictionary 的东西时-> 字典 -> 数组 -> 字典,问题开始了,所以我有以下代码:
func performCYesterdayWeatherFetch(forSelectedCity: String)
{
let properString = forSelectedCity.addingPercentEncoding(withAllowedCharacters:NSCharacterSet.urlQueryAllowed)
Alamofire.request("http://api.apixu.com/v1/history.json?key=MY_KEY&q=\(properString!)&dt=2016-10-20").responseJSON { (response) -> Void in
guard response.result.isSuccess else
{
print("Error while fetching remote rooms: \(response.result.error)")
return
}
guard let json = response.result.value as? JSON,
let forecastJson = json["forecast"].dictionary else
{
print("YESTERDAY PROBLEM")
return
}
for item in (forecastJson["forecastday"]?.arrayValue)!
{
let day = item["day"].dictionaryObject
guard let yesterdayTempCels = day?["avgtemp_c"] as! Double?,
let yesterdayTempFahr = day?["avgtemp_f"] as! Double? else
{
return
}
MY_KEY - 真的是我的钥匙,问题不在于我没有输入钥匙。
它总是在这里进入 else:
guard let json = response.result.value as? JSON,
let forecastJson = json["forecast"].dictionary else
{
print("YESTERDAY PROBLEM")
return
}
他们生成的 JSON 看起来像这样: 我需要的是 avgtemp_c 和 avgtemp_f
我做错了什么?
【问题讨论】:
-
你从哪里得到那种类型的
JSON? -
我在教程中看到了,从请求中我得到了一个 JSON 文件,在其他示例中(它在哪里工作)...
-
但这一定是一个库(也许你正在使用
SwiftyJSON),因为JSON 不是Alamofire中的类型,iOS API's也不是 -
我用的是SwiftyJSON,忘记写了,我会编辑帖子
标签: ios json parsing dictionary swift3