从 SwiftyJSON 块访问值时遇到问题

Posted

技术标签:

【中文标题】从 SwiftyJSON 块访问值时遇到问题【英文标题】:Having issues with accessing values from a SwiftyJSON block 【发布时间】:2017-03-11 18:53:32 【问题描述】:

这是我的 ALamofire 查询返回的 JSON。


    "status": "",
    "minute": "5",
    "seconds": "54"

下面是我用来处理返回的 JSON 的函数。我无法从上面的 JSON 中提取分钟和秒值。我对分钟和秒值特别感兴趣。

func returnTime()
    if let test22 = self.userdefaults.string(forKey: "fiveholdid")
        Alamofire.request(ticketingDets,method:.post,parameters: ["command":"remaining","id":test22]).validate().responseString
            responseData in
            switch responseData.result

            case .success(let jJson):
               print(jJson)
                self.timerJSON = JSON(jJson)
                if let status =  self.timerJSON["status"].string
                    //print("STATUS" + status)
                    if(status=="expired")
                        print("In Timer Expired")
                        self.throwAlert(title: "RESERVATION", message: "Your Reservation has Expired. Please try again.", delay: 3.0)
                        self.userdefaults.removeObject(forKey: "fiveholdid")
                    
                    else

                    var minute = self.timerJSON["minute"].stringValue
                    print(minute)
                    var second = self.timerJSON["seconds"].stringValue
                    print("second"+String(second))
                    var secondd = ""
                    if((second.characters.count) < 2)
                        var secondd = "0" + String(second)
                    else
                        var secondd = String(second)
                    
                    self.timeremaining.text = String(minute)+":"+String(secondd)+" remaning"

                

                //self.datesLabel.text = jJson

            case .failure(let error):
                print(error)
            

        

【问题讨论】:

错误是什么? 一切都返回为零/不存在 【参考方案1】:

所以答案是这样的:

        Alamofire.request(ticketingDets,method:.post,parameters: ["command":"remaining","id":test22]).validate().responseString

    Alamofire.request(ticketingDets,method:.post,parameters: ["command":"remaining","id":test22]).validate().responseJSON

所以我必须告诉 AF 我正在接收 JSON 而不仅仅是字符串...

【讨论】:

以上是关于从 SwiftyJSON 块访问值时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

SwiftyJSON 打印字典数组中的所有值

如何访问第一组数组? SwiftyJSON

swiftyJson 错误句柄

SwiftyJson Swift 3 无法访问 JSON 中的字符串

SwiftyJSON 问题

在 NSUserDefaults 中存储 swiftyJSON 返回的数据时遇到问题...相同的数据源