ios - 检索 token Swift 4 中的单值键

标签 ios json swift token

我在检索和显示 token 的单个值(例如在信息 token 中显示姓氏)时遇到问题。

这是我获取 API 用户个人资料的代码:

// get API and Bearer token
let token = HPWSLoginManager.shared().saveSuccessResponse.token
let url = URL(string: "http://51.38.36.76:40/api/v1/profile")
var request = URLRequest(url: url!)
request.httpMethod = "GET"
request.addValue("Bearer \(token!)", forHTTPHeaderField: "Authorization")
URLSession.shared.dataTask(with: request) { (data, response, error) in

    guard let data = data else { return }
    //get information in token
    do {
         let json = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String: AnyObject]
          //  print(json)
        if let lastName = json["lastname"] as? [String] {
            print(lastName)
        }

    } catch {
        print("error")
    }
}.resume()

我无法显示姓氏,但我检索原始 token 中的信息,例如:

▿ 3 elements
  ▿ 0 : 2 elements
    - key : "sub"
    ▿ value : 15 elements
      ▿ 0 : 2 elements
        - key : emailaddress
        - value : 
      ▿ 1 : 2 elements
        - key : secretcode
        - value : $2a$10$IcNejUrpOk82mORSu4bQauLa12UP1dCjQ0y8hTLnEUl9otC.VLCCe
      ▿ 2 : 2 elements
        - key : loginAttempts
        - value : 0
      ▿ 3 : 2 elements
        - key : lastname
        - value : test
      ▿ 4 : 2 elements
        - key : numberisverified
        - value : 0
      ▿ 5 : 2 elements
        - key : created_at
        - value : 2018-07-11T14:38:29.266Z
      ▿ 6 : 2 elements
        - key : _id
        - value : 5b461665a6b67d046c42dc68
      ▿ 7 : 2 elements
        - key : countrycode
        - value : GN
      ▿ 8 : 2 elements
        - key : firstname
        - value : test
      ▿ 9 : 2 elements
        - key : birthday
        - value : 
      ▿ 10 : 2 elements
        - key : nationalformat
        - value : 625 25 92 39
      ▿ 11 : 2 elements
        - key : accountstatus
        - value : PENDING
      ▿ 12 : 2 elements
        - key : __v
        - value : 0
      ▿ 13 : 2 elements
        - key : internationalFormat
        - value : +224 625 25 92 39
      ▿ 14 : 2 elements
        - key : usernumber
        - value : +224625259239
  ▿ 1 : 2 elements
    - key : "exp"
    - value : 1532706259
  ▿ 2 : 2 elements
    - key : "iat"
    - value : 1532702659

帮助我在我的应用程序中显示单个值lastName = test

我有这个错误 enter image description here

最佳答案

姓氏似乎位于 sub 属性下

do {
    let json = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String: AnyObject]
    if let sub = json["sub"] as? [String: AnyObject], let lastName = sub["lastname"] {
        print(lastName)
    }

} catch {
    print("error")
}

关于ios - 检索 token Swift 4 中的单值键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51560919/

相关文章:

iphone - Mac 在 MonoTouch 和 XCode 中开发的系统要求

ios - swift 中的 "terminating with uncaught exception of type NSException"

swift - 在 Swift 中清除 UIWebView 的缓存

java - 从 JSON 对象填充 JTable

javascript - 如何捕获 No Access-Control-Allow-Origin 错误?

ios - Swift iOS - 参数标签 '(float3:)' 与任何可用的重载不匹配

ios - iOS:IAP如何工作?

iphone - 在 iPhone 启动(引导)或关机后加载应用程序

iphone - 我可以在 iPad 模拟器中仅输入授权用户时检查登录屏幕吗?

ios - 无法使用类型为 'pathForResource' 的参数列表调用 '(String, ofType: JSON.Type)'