我很难从二维 JSON 结构中获取值并将其放入 TableView 中。我使用AFNetworking来获取JSON数据。此代码在 Xcode 6 beta 7 中构建:
func apiConnetion() {
var result: NSArray = []
manager.GET("https://example.com/",
parameters: nil,
success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) in
result = responseObject as NSArray
println(result)
dispatch_async(dispatch_get_main_queue(), {
self.commentData = result
self.commentTableView!.reloadData()
})
},
failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in
println("error")
println(" (error.localizedDescription ) ")
})
}
println(result)
像这样打印结构:
{
"id" = 1;
"name" = "Test1";
"category" =
"id" = 1;
"name" = "justtest";
}
{
"id" = 2;
"name" = "Test2";
"category" =
"id" = 2;
"name" = "justtest1";
}
如何获取类别名称?
您有一个包含两个条目的NSArray
。使用cellForRowAtIndexPath
中的indexPath.row
选择正确的条目。这将返回一个字典。选择与返回NSDictionary?
的"category"对应的值,因为字典访问始终返回可选值,以防键不存在。使用?
将其解开包装。?
比这里的!
更安全,如果"类别"不是键,则尝试解开 nil 时会崩溃。现在查找返回NSString?
的"名称"。最后,如果"类别"或"名称"不是有效的键,请使用 nil 合并运算符获取字符串或空字符串。
let name = result[indexPath.row]["category"]?["name"] ?? ""