使用 SwiftyJSON iOS 解析 JSON 响应

Posted

技术标签:

【中文标题】使用 SwiftyJSON iOS 解析 JSON 响应【英文标题】:Parse JSON response using SwiftyJSON iOS 【发布时间】:2016-06-07 10:23:39 【问题描述】:

我正在尝试解析以下 JSON 响应,以使用 SwiftyJSON 获取特定日期的 时间可用性。 我已成功解析以从 timeSlots 获取日期。

但是,我无法从响应中获取特定日期的“时间”。


  "statusCode": 200,
  "doctorDetailsList": null,
  "doctorDetails": 
    "id": 219,
    "doctorName": "Doris Wunsch",
    "qualification": "MD",
    "consultationFee": 760,
    "experience": 0,
    "timeSlots": 
      "06/07/2016": [
        
          "date": 1465432200000,
          "time": "6:00 AM",
          "availability": true
        ,
        
          "date": 1465452000000,
          "time": "11:30 AM",
          "availability": true
        
      ],
      "06/08/2016": [
        
          "date": 1465259400000,
          "time": "6:00 AM",
          "availability": true
        ,
        
          "date": 1465279200000,
          "time": "11:30 AM",
          "availability": true
        
      ],
      "06/09/2016": [
        
          "date": 1465365600000,
          "time": "11:30 AM",
          "availability": true
        
      ]
    
  ,
  "totalDoctors": 0,
  "message": null

这就是我为获得 timeSlots 所做的:

let todaysSlots = (self.doctorProfileDetail!["doctorDetails"]["timeSlots"].dictionary?.keys.sort()[0])!

作为回报,它给出了“06/07/2016”

我如何获得时间可用性

【问题讨论】:

【参考方案1】:

得到结果:

let todaysDate = (self.doctorProfileDetail!["doctorDetails"]["timeSlots"]["06/07/2016"])[0]["time"]

let isAvailable = (self.doctorProfileDetail!["doctorDetails"]["timeSlots"]["06/07/2016"])[0]["availability"]

【讨论】:

【参考方案2】:
var Data :  NSMutableDictionary = NSMutableDictionary()

do 
    let path: String = NSBundle.mainBundle().pathForResource("Swift", ofType: "json")!
    let url: NSURL = NSURL.fileURLWithPath(path)
    let req: NSURLRequest = NSURLRequest(URL: url)
    let data: NSData = try NSURLConnection.sendSynchronousRequest(req, returningResponse: nil)
    let json: [NSObject : AnyObject] = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as! [NSObject : AnyObject]
     Data = json["doctorDetails"]?.valueForKey("timeSlots") as! NSMutableDictionary
       print(Data)
    let time : NSMutableDictionary = Data.valueForKey("06/07/2016")?.objectAtIndex(1) as! NSMutableDictionary
    let timestring = time.valueForKey("time") as! String
     print(timestring)
    let availability : NSMutableDictionary = Data.valueForKey("06/07/2016")?.objectAtIndex(1) as! NSMutableDictionary
    let numberbool = availability.valueForKey("availability") as! Bool
    print(numberbool)

您可以使用此代码并获得时间可用性享受

【讨论】:

感谢@Dhiren 的尝试。但是,我已经找到了解决方案,它在下面的答案中。

以上是关于使用 SwiftyJSON iOS 解析 JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 iOS 7 下使用 SwiftyJSON 解析 JSON 数据时出现未知类型

iOS:从 Alamofire 解析的 SwiftyJSON 是一个数组。尝试解析时为空

使用 SwiftyJSON 解析 JSON 响应而不会崩溃

无法使用 AlamoFire 和 SwiftyJSON 解析 JSON

使用 SwiftyJSON 解析 JSON

使用 SwiftyJSON 解析 JSON