如何从 JSON 二维结构(嵌套字典)中获取值



我很难从二维 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"] ?? ""

最新更新