【发布时间】:2017-06-19 22:23:34
【问题描述】:
我在这里查看了许多其他问题,但我对 Swift 还比较陌生,我很难将这些答案放到我所拥有的上下文中。
我有一个事件数据库,我想用所述事件填充一个表格视图。在我的“EventTableViewController”中,我有以下功能:
func HTTPRequestListEvent() {
let serverURL = NSURL(string: "http://localhost:8888/public_php/Cake/index.php/event/listevent")
let request = NSMutableURLRequest(url:serverURL! as URL)
request.httpMethod = "POST"
//Create a task to send the post request
let task = URLSession.shared.dataTask(with: request as URLRequest) {
data, response, error in
if error != nil {
print("HTTPRequestError1=\(error)")
return
}
do {
if let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject] {
print("1")
for (_, value) in json {
if let eventItem = value as? [String:AnyObject] {
if let eventName = eventItem["EventName"] as? String {
print(eventName)
}
if let eventLocation = eventItem["EventLocation"] as? String {
print(eventLocation)
}
}
}
}
}
catch {
print("HTTPRequestError2=\(error)")
}
}
task.resume()
}
但是,我似乎无法让 JSON 序列化工作。它没有给我一个错误,甚至没有打印出'1'。
我也不想说'print(eventName)',但这就是我目前所知道的。我想做的是做类似的事情:
cell.eventNameLabel.text = eventName
但我不确定如何在这种情况下获取单元格详细信息。
编辑:我的 JSON 曾在其他地方工作,但对于单一数据 - 我已经能够登录并注册用户。
使用邮递员,我从我的服务器获得以下 json 数据:
[{"EventName":"Magnificent soirée","EventLocation":"热水浴缸电影院","StartDate":"2017-12-01"},{"EventName":"盛大派对","EventLocation" :"Gazeebo","StartDate":"2017-12-02"},{"EventName":"神奇事件","EventLocation":"彩虹的尽头","StartDate":"2017-02-03 "},{"EventName":"有点垃圾的聚会","EventLocation":"Dungeon","StartDate":"2090-01-04"}]
【问题讨论】:
-
您的 JSON 很可能不是字典。
-
你能添加一个 JSON 样本吗?
-
@rmaddy 用外行的话来说是什么意思?我该如何处理这些信息?
-
您的代码假设 JSON 的顶层是字典。但是你的 JSON 的顶层是一个数组。
标签: ios json swift uitableview