将JSON AnyObject转换为Double(Swift)

Rob*_*ert 1 xcode casting swift

我想将一个AnyObject从JSON转换为Swift中的Double.

let value = Double(jsonResult["counter"]) 不起作用

let value = jsonResult["counter"] as? Double 不起作用

let value = jsonResult["counter"] as! Double 不起作用

jtb*_*des 9

字典中的数字(/来自JSON)通常是NSNumber.你可以用(jsonResult["counter"] as? NSNumber).doubleValue.(Double类型本身不是类,因此它不能是AnyObject.)


编辑:听起来像服务器将数据作为字符串返回,比如{"counter": "1234"}.

在这种情况下,您可以利用调用的NSString方法doubleValue解析字符串(或者您可以使用integerValue):

if let counter = (parseJSON["counter"] as? NSString)?.doubleValue {
    // do something
}
Run Code Online (Sandbox Code Playgroud)