使用 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 是一个数组。尝试解析时为空