nsdictionary获取值_我无法使用swift提取NSDictionary值

我发现了什么问题!

显然,默认情况下,所有JSON值都是string类型 .

{“age_in_days”= 1401753600; “height_nom”=“13.5”; “height_ovr”=“14.0”; lat =“24.084082”; lon =“89.023476”; “station_id”= 1; }

因此,获取double值的正确方法是:

var dataDictionary = NSJSONSerialization.JSONObjectWithData(dataInput, options: NSJSONReadingOptions.MutableContainers, error: &error) as? NSDictionary

var stationsInfo: NSArray = stationsDictionary["stations"]! as NSArray

for station in stationsInfo{

//parse the information

var age_in_days : Int = (station["age_in_days"] as String).toInt()!

var hight_normal: Double = (station["height_nom"] as NSString).doubleValue

var hight_over : Double = (station["height_ovr"] as NSString).doubleValue

var latitude: CLLocationDegrees = (station["lat"] as NSString).doubleValue

var longitude: CLLocationDegrees = (station["lon"] as NSString).doubleValue

var station_id : Int = (station["station_id"] as String).toInt()!

注意:类型String不包含.toDouble()函数,这就是我不得不使用类型NSString的原因 .

此外,非常重要注意:两个键“age_in_days”和“station_id”在JSON中显示为int类型(如上面的引用中所示),但NSJSONSerialization函数从String类型中获取所有值!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值