从json数据对象解析后,我很难从NSDictionary对象中提取值 . ![在此处输入图像说明] [1]
var stationsInfo: NSArray = stationsDictionary["stations"]! as NSArray
for aStation in stationsInfo{
//parse the information
var station = aStation as NSDictionary
println("next")
var example: NSDictionary = ["key": "val", "key2": "val2", "key3": "val3"]
var ex: String = example["key2"] as String
println(station)
var age_in_days : Double = station["age_in_days"] as Double
var hight_normal: Double = station["height_nom"] as Double
var hight_over : Double = station["height_ovr"] as Double
var latitude: CLLocationDegrees = station["lat"] as Double
var longitude: CLLocationDegrees = station["lon"] as Double
var station_id : Int = station["station_id"] as Int
var ex最终等于“val2”,因为它可以工作,但是当我试图获取存储在站字典中的值时,我一直遇到奇怪的错误 .
尽管站的值如下,但仍会发生这种情况
{“age_in_days”= 1401753600; “height_nom”=“13.5”; “height_ovr”=“14.0”; lat =“24.084082”; lon =“89.023476”; “station_id”= 1; }
2 回答
您可以尝试将其作为Swift词典进行投射 . 你知道关键和 Value 是什么吗?如果是这样,请将AnyObjects替换为这些类型 . 你可以试试任何AnyObject,但你可能因此而必须做其他的转换 .
我发现了什么问题!
显然,默认情况下,所有JSON值都是string类型 .
因此,获取double值的正确方法是:
注意:类型String不包含.toDouble()函数,这就是我不得不使用类型NSString的原因 .
此外,非常重要注意:两个键“age_in_days”和“station_id”在JSON中显示为int类型(如上面的引用中所示),但NSJSONSerialization函数从String类型中获取所有值!