[英]Can't get json from weather api. iOS
這是json:
{
"main":{
"temp":-11.67,
"pressure":1040.21,
"humidity":73,
"temp_min":-11.67,
"temp_max":-11.67,
"sea_level":1055.37,
"grnd_level":1040.21
},
"id":3099213,
"name":"London",
"cod":200
}
我有JSON文件,我想使用"name": "London" (London)
的值"name": "London" (London)
並將其保存在變量cityName中,但是在self.cityName = city
行中有錯誤。 無法將類型[String : AnyObject]
值分配為String!
例如,下一個必須從JSON保存到可變溫度的工作正確並顯示溫度。
我不知道如何選擇此"name":"London"
值並將其保存到變量。 當我修改並輸入以下內容時: self.cityName = city as! String
self.cityName = city as! String
我已經警告從'[String : AnyObject]'
為不相關的類型'String'
總是失敗:
var cityName: String!
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject]
if let main = json["main"] as? [String : AnyObject] {
if let temp = main["temp"] as? Int {
self.degree = temp
}
}
if let city = json["name"] as? [String : AnyObject] {
self.cityName = city
}
}
if let city = json["name"] as? [String : AnyObject] {
self.cityName = city
}
替換為
if let city = json["name"] as? String {
self.cityName = city
}
目前你正在嘗試分配cityName
這類型的String
與city
這類型的[String:AnyObject]
像這樣在分配給cityName
之前強制轉換為String
:
var cityName: String!
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : Any]
if let main = json["main"] as? [String : Any],
let temp = main["temp"] as? Int {
self.degree = temp
}
if let city = json["name"] as? String {
self.cityName = city
}
請注意,我另外替換[String : AnyObject]
與[String : Any]
其是用於“任何”值類型的字符串BASD鍵值字典對象的迅標准。 我也去掉多余的if let
通過使用一個條件展開多個值嵌套,
語句之間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.