2017-08-18 5 views
0

私は結果とメッセージのデータを得ることができますが、私は "乗組員"の中に "crew_name"を得ることができません。どのように中括弧の中にある場合は、データを取得できますか?json中括弧内のデータを取得するには? Swift

(コンソール上に印刷されたJSON)

{ 
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

ここにコードを追加してください。 –

答えて

0

中括弧内のコードは辞書です。最初に "crew"キーから辞書を作成し、それを介して "crew_name"にアクセスすることでアクセスできます。

user変数が正しく「crew_name」にアクセスするには、以下のあなたが行うことができますJSONデータを使用して作成されたと仮定すると:

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

複数のデータを取得したい場合はどうすればいいですか? "crew_name"、 "crew_id"、 "crew_email"を取得しますか? –

0

あなたがオブジェクトの内部プロパティを使用するためにあなたのJSONをデシリアライズする必要があります。このlinkを参照すると、ObjectMapperを使用してJSONオブジェクトを直列化および逆シリアル化します。

注:DOは

0

をObjectMapper使用する前に、documentationをよく読んで、あなたはスウィフトのビルドを使用できるオブジェクトにあなたのJSONをデシリアライズする必要があり、それは少し面倒ですかSwiftyJSONのようなオープンソースライブラリを使用NSJSONSerializationとJSONのシリアライズあなたは(あなたの意志SwifyJSON場合)、またはあなたが辞書のようにアクセスすることができ、クラスの任意のパラメータにアクセスするように

あなたがあなたのJSONを表すオブジェクトを持つことになりますデシリアライズした後、あなたはそれにアクセスすることができます

yourJSONObject["crew"]["crew_name"]