使用 SwiftyJSON 和 Alamofire 遍历 JSON

Loop through JSON with SwiftyJSON and Alamofire

我查看了其他问题,但似乎找不到能回答我问题的问题。

我有这个 Json 文件:

[
"posts",
{
  "2015": [
    "post title one"
  ],
  "2016": [
    "post title one",
    "post title two"
  ]
}
]

我的 Swift 文件中有此代码:

Alamofire.request(.GET, url).validate().responseJSON { response in
        switch response.result {
        case .Success:
            if let value = response.result.value {
                let json = JSON(value)
                for (key, subJson) in json["posts"] {
                    if let year = subJson.string {
                        print(year)
                    }
                }
            }
        case .Failure(let error):
            print(error)
        }
    }

我可以从服务器获取 json ok。

这一行:

for (key, subJson) in json["posts"] {

我收到此错误:

immutable value 'key' was never used, consider replaying with '_' or removing it

我试过了,并尝试删除它 - 控制台中仍然没有任何显示。

此外,在这一行:

if let year = subJson.string {

我收到这个错误:

Value of tuple type 'Element' (aka '(String, JSON)') has no member 'string'

我想做的是:

遍历所有年份并将它们放在一个uitableview中。有人可以帮忙吗?

这样做:

for (_, subJson) in json["posts"] {
    for (year, content) in subJson {
        print(year)
    }
}

第一个错误只是一个警告,意味着您永远不会使用 "key" 变量,因此编译器建议不要标记它。在我的例子中,你会收到类似 content 的警告,因为我们没有使用它:你要么使用它,要么用 _.

替换它

请注意,我是从您的代码中推断出您的 JSON 格式,因为您的 JSON 片段看起来确实无效/不是实际的片段。

更新:

for (_, subJson) in json["posts"] {
    for (year, content) in subJson {
        print(year)
        for (_, title) in content {
            print(title)
        }
    }
}