Swift 将JSON AnyObject转换为Int64
这与这个问题有些关联:Swift 将JSON AnyObject转换为Int64,swift,Swift,这与这个问题有些关联: 有没有办法将AnyObject类型转换为Int64?我通过JSON收到了一个巨大的数字,这个数字以“AnyObject”的形式到达我的类-我如何将它转换为Int64-xcode只是说这是不可能的 您可以使用as type cast运算符将AnyObject强制转换为Int,但要向下转换为不同的数值类型,您需要使用目标类型的初始值设定项 var o:AnyObject = 1 var n:Int = o as Int var u:Int64 = Int64(n) JSON
有没有办法将AnyObject类型转换为Int64?我通过JSON收到了一个巨大的数字,这个数字以“AnyObject”的形式到达我的类-我如何将它转换为Int64-xcode只是说这是不可能的 您可以使用as type cast运算符将AnyObject强制转换为Int,但要向下转换为不同的数值类型,您需要使用目标类型的初始值设定项
var o:AnyObject = 1
var n:Int = o as Int
var u:Int64 = Int64(n)
JSON编号是
NSNumber
,因此您需要通过它
import Foundation
var json:AnyObject = NSNumber(longLong: 1234567890123456789)
var num = json as? NSNumber
var result = num?.longLongValue
请注意,result
是Int64?
,因为您不知道此转换会成功。请尝试使用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"])
}
正如@Rob Napier的回答所说,您正在处理的是
NSNumber
。如果您确定您有一个有效的,您可以这样做以获得Int64
(json["key"] as! NSNumber).longLongValue
但在32位平台上,int小于int64。。。这意味着我会以这种方式丢失信息,还是我错了?SwiftyJSON(目前)比手工处理要慢得多。