我正在使用Vapor作爲Swift後端。以下是我正在使用的代碼。Swift 3可選字符串到int
drop.post("postTodo") { request in
var jsonContent: JSON?
if let contentType = request.headers["Content-Type"], contentType.contains("application/json"), let jsonData = request.json {
jsonContent = jsonData
print("Got JSON: \(jsonContent)")
}
guard let id = jsonContent?.node.object?["id"]?.string
else {
return JSON(["message": "Please include mandatory parameters"])
}
let tempId = Int(id)!
我收到 「ID」,作爲如可選字符串:??可選的jsonContent .node.object( 「123」)[ 「ID」] ?.串
當我嘗試使用Int(id)將其轉換爲int!我回來零 如果我嘗試讓tempId = Int(id!)它會給出錯誤。
但是當我在操場上做同樣的事情時,我得到了正確的int值。
let id: String?
id = "1234"
let myInt = Int(id!)
爲什麼可選字符串到Int在我的Vapor應用程序中無法正常工作? 任何想法。
第一個猜測是'id'已經是一個Int ...嘗試不首先轉換爲字符串? – brandonscript
用'let tempId = Int(id)'替換'let tempId = Int(id)!'。 – shallowThought
那麼我如何從json節點對象獲取int?因爲如果我調用jsonContent?.node.object?[「id」]?。int它會給零,如果我打電話給jsonContent?.node.object?[「id」]?那麼它會給Node.Node對象。 – Tarang