如何获取json花括号内的数据? Swift

How to get the data inside the json curly braces? Swift

我可以获取结果和消息数据,但无法获取 crew 中的 crew_name。如果数据在花括号内,我如何获取数据?

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" = 0123456789;
        "crew_email" = "pang@xover.com.my";
        "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

}

您需要反序列化 JSON 才能使用对象内的属性。参考这个 link 他们使用 ObjectMapper 序列化和反序列化 JSON 个对象。

注意:在使用 ObjectMapper

之前,请务必阅读 documentation

您需要将 JSON 反序列化为一个对象 您可以使用 Swift 构建它 JSON 序列化 NSJSONSerialization which is a bit cumbersome or use open source library like SwiftyJSON

反序列化后,您将拥有一个代表您的 JSON 的对象,然后您可以像访问 class 的任何参数一样访问它(如果您将 SwifyJSON) , 或者你可以像字典一样访问它

yourJSONObject["crew"]["crew_name"]

大括号内的代码是一个字典,您可以通过首先从 "crew" 键创建一个字典,然后通过它访问 "crew_name" 来访问它。

假设 user 变量是使用 JSON 数据正确创建的,您可以执行以下操作来访问 "crew_name":

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