首页 > 解决方案 > 在令牌 Swift 4 中检索单值键

问题描述

我在检索和显示单个令牌值时遇到问题,例如在信息令牌中显示 lastName。

这是我获取 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()

我无法显示姓氏,但我以原始令牌检索信息,例如:

▿ 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

我有这个错误 在此处输入图像描述

标签: iosjsonswifttoken

解决方案


如果 let sub = json["sub"] as 这就是答案?[String:Any],让 lastName = sub["lastname"] 为?字符串 { 打印(姓氏) }


推荐阅读