2015-10-15 76 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