将JSON AnyObject转换为Int64

时间:2014-09-22 12:58:33

标签: swift

这与此问题有些相关:How to properly store timestamp (ms since 1970)

有没有办法输入一个AnyObject到Int64?我通过JSON收到一个巨大的号码,这个号码到达我的班级时为#34; AnyObject" - 如何将其转换为Int64-xcode只是说它不可能。

4 个答案:

答案 0 :(得分:28)

JSON号码为NSNumber,因此您需要通过该号码。

import Foundation
var json:AnyObject = NSNumber(longLong: 1234567890123456789)

var num = json as? NSNumber
var result = num?.longLongValue

请注意resultInt64?,因为您不知道此转化会成功。

答案 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