2015-10-15 102 views
-1

由于五个小时我试图解析json响应。 响应看起来像这样。用Alamofire解析JSON

{ 
    "USD_PHP" =  { 
     val = "45.7295"; 
    }; 
} 

我在swift2中使用此方法发出请求。

func GetRate() -> Float 
{ 
    Alamofire.request(.GET, "http://free.currencyconverterapi.com/api/v3/convert?q=USD_PHP&compact=y") 
     .responseJSON { response in 
      if let json = response.result.value { 
       print(json) 
       let usd = json as! NSDictionary 
       print(usd) 
       let dict = usd["USD_PHP"] as! NSDictionary 
       let val = dict.objectForKey("val") as! NSString //? 
       print(val) 

       // ? 
       return Float(val as String) 
      } 
    } 

    return 0.0 
} 

打印(VAL)打印可选(45.7295)

但我不知道如何返回这个值作为浮动。 有没有人有想法?

+0

“45.7295”不是浮子吗? –

+0

你可以试试[SwiftyJSON](https://github.com/SwiftyJSON/SwiftyJSON),它可以和Alamofire一起使用。 –

+0

是swiftyjson应该是明显的选择,因为它会让你的生活变得更好。 –

回答

1
if let value = Float(val as String) { 
    return value 
} else { 
    return 0.0 
} 

但实际上它并不能帮助你,因为responseJSON { response in是异步回调,你一定要了解它。

+0

它适合我!如果让value = Float((val?。stringValue)!){ result = value } else { result = 0.0 } if let value = – LaMiy