【问题标题】:Error when try to parse json?尝试解析json时出错?
【发布时间】:2016-10-23 17:07:39
【问题描述】:

我正在尝试解析 JSON,但它不起作用。我想从 URL 的 JSON 中获取 id,但它显示了 null 值。

 var names = [String]()
 var SearchURL = "http://ios.khothe.vn/web/gamecards/authenticate/user/dungphiau/pass/829d81d46bad96825dc52a6e1675aab0"
 typealias jsonStandard = [String : AnyObject]

 override func viewDidLoad() {
     super.viewDidLoad()
     // Do any additional setup after loading the view, typically from a nib.
     callAlamo(url: SearchURL)
 }

 func callAlamo(url : String)  {
     Alamofire.request(url).responseJSON(completionHandler:
     {
         responds in
         self.parseData(JsonData: responds.data!)
     })
 }

 func parseData(JsonData : Data)  {
     do{
         var readableJson = try JSONSerialization.jsonObject(with: JsonData, options: .mutableContainers) as! jsonStandard
         let tracks = readableJson["id"] as? jsonStandard
         print(tracks)
     } catch{
           print(error)
     }
 }

【问题讨论】:

  • nil 到底是哪个值?
  • 我想解析url中的值“id”并打印出来
  • 再一次,哪一行显示的是“null”值?
  • 让tracks = readableJson["id"] as? json标准
  • 仍不清楚。 readableJson nil 还是 tracks nil?使用调试器。查看每个值是什么。确认 readableJson 实际上包含密钥 "id"

标签: json swift swift3 alamofire


【解决方案1】:

id 的值是 String 不是 [String:AnyObject] aka jsonStandard

let tracks = readableJson["id"] as? String

考虑到在 Swift 3 中 JSON 字典的类型是 [String:Any]

typealias jsonStandard = [String : Any]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-25
    • 2017-09-12
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多