2016-07-28 4 views
0

Я следил за несколькими учебниками по этому поводу, и насколько я могу судить, что я делаю, должен работать. У меня есть следующие JSON ответ от апи вызоваParse JSON using Swift/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 
     { 

     } 

    } 
} 

я получаю предупреждение, что говорит Cast от «JSON» к неродственному типу «String» всегда терпит неудачу.

Что нужно изменить, чтобы увидеть значение Id?

Это код из 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? Если быстро JSON вы можете сделать что-то вроде

res["id"]?.string 

Если вы что-нибудь о типе «Рес» не говорите, что мы не можем ответить вам.

+0

К сожалению, полностью разнесенных что. Я отредактировал название, чтобы его отразить. Я использую SwiftyJSON – Jhorra

+0

Тип возврата res - JSON. Я также обновил свой вопрос с этой информацией. – Jhorra