这与此问题有些相关:How to properly store timestamp (ms since 1970)
有没有办法输入一个AnyObject到Int64?我通过JSON收到一个巨大的号码,这个号码到达我的班级时为#34; AnyObject" - 如何将其转换为Int64-xcode只是说它不可能。
答案 0 :(得分:28)
JSON号码为NSNumber
,因此您需要通过该号码。
import Foundation
var json:AnyObject = NSNumber(longLong: 1234567890123456789)
var num = json as? NSNumber
var result = num?.longLongValue
请注意result
为Int64?
,因为您不知道此转化会成功。
答案 1 :(得分:2)
您可以使用as类型转换运算符从AnyObject转换为Int,但要向下转换为不同的数字类型,您需要使用目标类型的初始值设定项。
var o:AnyObject = 1
var n:Int = o as Int
var u:Int64 = Int64(n)
答案 2 :(得分:1)
尝试SwiftJSON这是在Swift中处理JSON数据的更好方法
let json = SwiftJSON.JSON(data: dataFromServer)
if let number = json["number"].longLong {
//do what you want
} else {
//print the error message if you like
println(json["number"])
}
答案 3 :(得分:1)
正如@Rob Napier的回答所说,你正在处理NSNumber
。如果您确定自己有效,可以执行此操作以获得Int64
(json["key"] as! NSNumber).longLongValue