【问题标题】:How to get the data inside the json curly braces? Swift如何获取json花括号内的数据?迅速
【发布时间】:2017-08-18 11:53:18
【问题描述】:

我可以获得结果和消息数据,但我无法获得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 swift xcode get curly-braces


【解决方案1】:

花括号内的代码是一个字典,您可以通过首先从“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"
}

【讨论】:

  • 如果我想获取多个数据怎么办?得到“crew_name”、“crew_id”、“crew_email”?
【解决方案2】:

您需要反序列化您的 JSON 才能使用对象内部的属性。请参阅此link,他们使用 ObjectMapper 序列化和反序列化 JSON 对象。

注意:在使用 ObjectMapper 之前,请阅读 documentation

【讨论】:

    【解决方案3】:

    你需要将你的 JSON 反序列化为一个对象你可以使用 Swift 的 build it JSON 序列化和NSJSONSerialization 这有点麻烦或者使用像SwiftyJSON 这样的开源库

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

    yourJSONObject["crew"]["crew_name"]
    

    【讨论】:

      猜你喜欢
      • 2019-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-07
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多