2017-08-18 5 views
0

Ich kann die Ergebnisse und Nachrichtendaten erhalten, aber ich kann nicht den "crew_name" in der "Crew" bekommen. Wie kann ich die Daten erhalten, wenn sie in den geschweiften Klammern sind?Wie erhalten Sie die Daten in den geschweiften Klammern von Json? Swift

(json auf der Konsole gedruckt)

{ 
crew =  { 
    "crew_avatar" = "http://ec2-52-221-231-3.ap-southeast-1.compute.amazonaws.com/gv/images/profile_image/Pang_Kang_Ming_916210_0e9.jpg"; 
    "crew_contact" =; 
    "crew_email" = "[email protected]"; 
    "crew_gender" = Male; 
    "crew_id" = PP000001; 
    "crew_name" = "Pang Kang Ming"; 
    "crew_preferred_name" = PKM; 
    "crew_qrcode" = "images/qrcode/qrcode_085960293a5378a64bec6ebfa3c89bb7.png"; 
}; 
message = "Login Sucessfully"; 
result = success; 

}

@IBOutlet var empNameLabel: UILabel! 
@IBOutlet var empIdLabel: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 


    let empNameValue = user!("crew"["crew_name"])as? String 
    let empIdValue = user!["result"]as? String 

    empNameLabel.text = empNameValue 
    empIdLabel.text = empNameValue 

} 

Screenshot

+0

Bitte Code hier hinzufügen. –

Antwort

0

Der Code in den geschweiften Klammern ist ein Wörterbuch, auf das Sie zugreifen können, indem Sie zuerst ein Wörterbuch aus der "crew" -Schaltfläche erstellen und dann auf "crew_name" zugreifen.

Unter der Annahme, dass die user Variablen korrekt mit den JSON-Daten erstellt werden Sie folgende tun können, um „crew_name“ zugreifen:

if let crew = user!["crew"] as? [String:Any], let crewName = crew["crew_name"] as? String { 
    print(crewName) // output: "Pang Kang Ming" 
} 
+0

Wie wenn ich mehrere Daten erhalten möchte? "crew_name", "crew_id", "crew_email" erhalten? –

0

Sie benötigen eine JSON, um deserialisiert die Eigenschaften innerhalb des Objekts zu verwenden. Siehe hierzu link, wo sie mit ObjectMapper JSON-Objekte serialisieren und deserialisieren.

HINWEIS: auf dem documentation lesen, Sie vor ObjectMapper mit

0

Sie benötigen eine JSON auf ein Objekt deserialisieren Sie Swift Build es JSON Serialisierung mit NSJSONSerialization, die ein wenig umständlich oder benutzen Bibliothek Open Source wie SwiftyJSON ist verwenden können

Nachdem Sie deserialisieren Sie ein Objekt haben, die Ihre JSON repräsentiert, dann können Sie darauf zugreifen, wie Sie alle Parameter einer Klasse zugreifen (wenn man so will SwifyJSON), oder Sie es wie ein Wörterbuch zugreifen können

yourJSONObject["crew"]["crew_name"] 
Verwandte Themen