如何将JSON中的字符串转换为int Swift

时间:2015-02-04 09:48:19

标签: swift

self.event?["start"].string

输出=可选(“1423269000000”)

我想获得1423269000000作为Int

我们怎样才能做到这一点?我尝试了很多方法,比如NSString(但它改变了价值)

4 个答案:

答案 0 :(得分:3)

您的值:1,423,269,000,000大于最大Int32值:2,147,483,647。这可能会导致意外的铸造价值。有关详细信息,请查看以下内容:Numeric Types

尝试运行此代码:

let maxIntegerValue = Int.max
println("Max integer value is: \(maxIntegerValue)")

在iPhone 4S模拟器中,控制台输出为:

Max integer value is: 2147483647

和iPhone 6模拟器一样,控制台输出是:

Max integer value is: 9223372036854775807

此信息可能对您有所帮助。

但通常将Int转换为String:

let mInt : Int = 123
var mString = String(mInt)

将String转换为Int:

let mString : String = "123"
let mInt : Int? = mString.toInt()

if (mInt != null) {
    // converted String to Int
}

答案 1 :(得分:1)

以下是使用Optional Binding执行此操作的安全方法:

var json : [String:String];
json = ["key":"123"];


if var integerJson = json["key"]!.toInt(){
    println("Integer conversion successful : \(integerJson)")
}
else{
    println("Integer conversion failed")
}

<强>输出:              Integer conversion successful :123

通过这种方式,可以确定转化 成功,使用Optional Binding

答案 2 :(得分:0)

以防万一有人还在寻找更新的答案,这是Swift 5+版本:

let jsonDict = ["key": "123"];
// Validation
guard let value = Int(jsonDict["key"]) else {
    print("Error! Unexpected value.")
    return
}
print("Integer conversion successful: \(value)")

//打印“整数转换成功:123”

答案 3 :(得分:-1)

我不确定你的问题,但是说你有一本字典(它是JSON与否)你可以这样做:

var dict: [String : String]
dict = ["key1" : "123"]

var x : Int
x = dict["key1"].toInt()
println(x)