2016-07-28 19 views
0

Ich habe mehrere Tutorials zu diesem Thema, und soweit ich sagen kann, was ich tue, sollte funktionieren. Ich habe folgende json Antwort von einem API-AufrufParse JSON mit 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 
    }] 
} 

Im Grunde mag ich nur überprüfen, ob der ID-Wert leer ist oder nicht. Hier ist der Code Ich verwende

Die res Rückgabetyp JSON ist

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

     } 
     else 
     { 

     } 

    } 
} 

ich eine Warnung erhalten, die Cast von ‚JSON‘ an unabhängigem Typen sagt ‚String‘ nicht immer.

Was muss ich ändern, um den Wert von Id zu sehen?

Dies ist der Code aus der ApiConnector Klasse

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) 
     }) 
} 

Antwort

2

Ich glaube, Sie so etwas wie dies will:

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

Welche Bibliothek sind Sie für Griff json verwenden? Wenn swift json Sie so etwas wie

res["id"]?.string 

tun können, wenn Sie nichts sagen, von der Art der „res“ können wir Ihnen nicht antworten.

+0

Sorry, total, dass im Abstand. Ich habe den Titel editiert, um es zu reflektieren. Ich verwende SwiftyJSON – Jhorra

+0

Der Res-Rückgabetyp ist JSON. Ich habe meine Frage auch mit dieser Information aktualisiert. – Jhorra