我正在尝试使用恩典笔记API为我附近的影院播放电影(JSON格式),以构建个人应用程序。我可以打电话给服务器并显示电影正在显示的内容。但是,我正在尝试显示在JSON中更深入嵌入的放映时间。我会尽力解释,但JSON的回应是:
theres x x dictionaries的根数组(但是很多电影都在剧院里)
每个字典里面都是一个关键的'标题',我正在表格中显示(正常工作)。
我所坚持的是,在每个根词典中,还有一个名为“showtimes”的字典。在这本词典里面有数量的词典(不过很多时候电影在剧院里播放)。在每个词典中都有一个关键的'dateTime',它是我想要获取并存储到每个电影的数组中的实际showtime。我们的想法是在tableview单元格详细文本标签中显示类似'12:30,2:45,5:00,7:30'的内容。
提前谢谢!
答案 0 :(得分:1)
This将是您的有用资源。 首先,我建议您使用SwiftyJSON。它将使json轻松完成您的工作。回到你的问题......(为了清楚起见,请参阅我在代码中的评论)
for (index: String, subJson: JSON) in json { // your whole json is an array, "[" in the beginning indicates that
for (index: String, subSubJson: JSON) in subJson["showtimes"] { // in all "showtime" arrays:
self.<YOUR ARRAY>.append(getTime(subSubJson["dateTime"].string!)) // append processed value for key "dateTime" to <YOUR ARRAY>
}
}
func getTime(input:String) -> String {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm"
let date = dateFormatter.dateFromString(input)
let calendar = NSCalendar.currentCalendar()
let comp = calendar.components((.CalendarUnitHour | .CalendarUnitMinute), fromDate: date!)
let hour = comp.hour
let minute = comp.minute
return ("\(hour):\(minute)")
}
这会给你:
10:15
12:20
14:25
16:30
18:35
20:40
10:20
12:30
14:40
16:50
19:0 // not sure why this happens :(