2014-09-04 108 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