2016-07-28 79 views
0

我已經按照這個幾個教程,而據我可以告訴我做的應該是工作的內容。我有一個API呼叫下面的JSON響應解析JSON使用斯威夫特/ SwiftyJSON

{ 
    "Id": "1", 
    "Name": "Test User", 
    "Email": "[email protected]", 
    "ProfileImage": null, 
    "IsAdmin": true, 
    "TakesJobs": false, 
    "IsLocationUser": false, 
    "IsCompanyAdmin": true, 
    "LocationUsers": [], 
    "CompanyUsers": [{ 
     "CompanyName": "Test Company", 
     "Id": 6, 
     "CompanyId": 5, 
     "UserId": "1", 
     "Admin": true, 
     "TakesJobs": false, 
     "UserName": null, 
     "UserEmail": null, 
     "AssignedJobs": null 
    }] 
} 

本質上,我只是想檢查Id值是否爲空。下面是我使用

的資源的代碼返回類型爲JSON

ApiConnector.sharedInstance.login(emailText.text!, password: passwordText.text!) { (res) in 
    if let id = res["Id"] as? String { 
     if id != "" { 

     } 
     else 
     { 

     } 

    } 
} 

我收到來自「JSON」到不相關類型的「字符串」總是失敗說演員的警告。

什麼我需要改變看id的值?

這是您使用的手柄JSON什麼庫ApiConnector類

func login(username: String, password: String, onCompletion: (JSON) -> Void) { 
    let route = baseURL + "auth?Email=" + username + "&Password=" + password 
    makeHTTPPostRequest(route, body: ["Email":username, "Password": password], onCompletion: { json, err in 
     onCompletion(json as JSON) 
     }) 
} 

回答

2

我想你想是這樣的:

ApiConnector.sharedInstance.login(emailText.text!, password: passwordText.text!) { (res) in 
    if let id = res["Id"].string { 
     // Do something. 
    } 
} 
1

的代碼?如果迅速json你可以做類似

res["id"]?.string 

如果你沒有說什麼「res」的類型,我們不能回答你。

+0

對不起,完全隔開一點。我編輯了標題以反映它。我正在使用SwiftyJSON – Jhorra

+0

res返回類型是JSON。我也用這些信息更新了我的問題。 – Jhorra