簡體   English   中英

如何將 JSON 中的字符串轉換為 int Swift

[英]How to convert string in JSON to int Swift

self.event?["start"].string

輸出是 = Optional("1423269000000")

我想得到 1423269000000 作為 Int

我們怎樣才能做到這一點? 我已經嘗試了很多方法,比如 NSString (但它改變了值)

您的值: 1,423,269,000,000大於最大 Int32 值: 2,147,483,647 這可能會導致意外的轉換值。 有關更多信息,請查看: 數字類型

嘗試運行此代碼:

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
}

這是我使用可選綁定執行此操作的安全方法:

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

我不確定你的問題,但說你有一本字典(它是 JSON 還是不是)你可以這樣做:

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

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

以防萬一有人仍在尋找更新的答案,這里是 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”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM