簡體   English   中英

無法從天氣API獲取json。 的iOS

[英]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這類型的Stringcity這類型的[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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM