2014-09-04 57 views
0

我很难从2维JSON结构获取值并将其放入TableView中。 我用AFNetworking来获取JSON数据。此代码建立在Xcode 6测试7:如何从JSON 2维结构(嵌套字典)获取值?

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"; 
} 

如何获得类别名称?

回答

1

您有一个NSArray有两个条目。在cellForRowAtIndexPath中使用indexPath.row来选择正确的条目。这将返回一个字典。选择与“类别”对应的值,返回NSDictionary?,因为字典访问在键不存在的情况下总是返回可选值。使用?解开这个。 A ?!更安全,如果“类别”不是关键字,它会试图拆开nil而崩溃。现在查找返回NSString?的“名称”。如果“类别”或“名称”不是有效密钥,最后使用零合并运算符获取字符串或空字符串。

let name = result[indexPath.row]["category"]?["name"] ?? "" 
+0

谢谢。有用 – 2014-09-05 02:24:07