无法从天气api获得json。 iOS版

时间:2017-01-19 00:40:44

标签: ios json swift api

这是json:

df$x <- ifelse(mask$x, df$x, "")
df$y <- ifelse(mask$y, df$y, "")

我已收到JSON文件,我想取<script type="javascript/text"> $( document ).ready(function() { var pageId = $('body').pagecontainer('getActivePage').prop('id'); console.log( "This is the page ID:" + pageId ); }); </script> 的值并将其保存在变量cityName中,但它不起作用,行{ "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 } 中有错误。无法将"name": "London" (London)类型的值指定为self.cityName = city

类型

例如,下一个必须从JSON保存到可变度温度的工作正确并显示温度。

我不知道如何选择此[String : AnyObject]值并将其保存到变量。 当我修改并放置它时:String!

我发出警告从"name":"London"转换为不相关的类型self.cityName = city as! String始终失败:

'[String : AnyObject]'

2 个答案:

答案 0 :(得分:0)

  if let city = json["name"] as? [String : AnyObject] {
       self.cityName = city
  }

替换为

 if let city = json["name"] as? String {
       self.cityName = city
  }

答案 1 :(得分:0)

目前,您正在尝试分配cityName String类型city [String:AnyObject] String类型cityName。在分配给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]

请注意,我还用if let替换了,<FrameLayout/>是&#34;任何&#34;的字符串基础键值字典对象的Swift标准。值类型。我还通过在语句之间使用<TextureView/>在一个条件中展开多个值来删除多余的AutoFitTextureView嵌套。